![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Время из секунд к "человеческому" виду.
SmallEr © (2007-04-28 18:53:00)Есть такая задача, дано время в секндах (что бы не думали что там 120 секунд, скажу, что много там в секундах, например месяц с лишним в секундах и более) и хочется мне его перевести в "человеческо-временной облик".
Т.е. что бы расшифровывалось это всё время в секундах к например:
- 1 день 2 часа 5 минут 3 секунды
- 2 дня 12 часов 9 минут 12 секунд
- 1 месяц 10 дней 9 часов 2 секунды
- 2 года 10 месяцев 5 дней 4 часа 59 минут 25 секунд
Отлично было бы если и день/дня, месяц/месяцев тоже соответствовали нужной формулировке. Но думаю, что можно ограничится:
1 д, 2 ч, 5 м, 3 с
2 д, 12 ч, 9 м, 12 с
1 м, 10 д, 9 с, 2 с
Я так думаю, что с такой задачей уже кто-то умнее меня сталкивался и видели или знают хорошее решение. ?
Sam Stone (2007-04-29 09:07:00) [21]Вроде тут все гораздо проще: в [0] же не сказано ХYZ секунд назад. Просто - XYZ секунд. Поэтому пользуем [22]. И с этим ничего не поделаешь, поскольку дан абсолютный промежуток времени.
А вот если бы было "назовите дату 4563 секунд назад", то тут другое дело, вообще копеечное.
KilkennyCat (2007-04-29 07:03:00) [22]Вы еще забыли перевод на летнее-зимнее время.
Но на самом деле задача решаема.
1 месяц = 30,4375 суток
Ketmar (2007-04-29 02:21:00) [23]хихик. а потому и вольная, чтобы иметь возможность так ответить. %-)
Германн (2007-04-29 01:20:00) [24]
> Ketmar © (29.04.07 01:13) [19]
>
> > Германн © (29.04.07 00:38) [16]
> > Ну так это ты так думаешь. А есть и иные, увы. Эти иные
> > хотят чтобы их желания выполнялись.
> в сад. вместе с такими желаниями. а лучше -- в школу, ибо
> явно недоучились.
>
Ну для тебя, может и сойдёт такой способ. Ты же - вольная птица, да и семьи (за которую ты отвечаешь) у тебя нет!
P.S. Если я не прав, то ткни меня носом!
Ketmar (2007-04-29 01:13:00) [25]> Германн © (29.04.07 00:38) [16]
> Ну так это ты так думаешь. А есть и иные, увы. Эти иные
> хотят чтобы их желания выполнялись.
в сад. вместе с такими желаниями. а лучше -- в школу, ибо явно недоучились.
Германн (2007-04-29 01:05:00) [26]
> Malik © (29.04.07 00:54) [17]
>
> Можно решить задачу, если только так:
> секунда/минута/час/день/неделя/4-х летие/век/тысячелените/.
> ...
>
Если исходная точка задана, то да. Можно. Т.е. если речь идёт о количестве секунд прошедших после заданного момента времени, то да. Но и то очень не просто. Придётся помучиться. Но в противном случае - нет! Никогда!
Malik (2007-04-29 00:54:00) [27]Можно решить задачу, если только так:
секунда/минута/час/день/неделя/4-х летие/век/тысячелените/....
Германн (2007-04-29 00:38:00) [28]
> Ketmar © (29.04.07 00:29) [15]
>
> кстати, я с устатку не сразу сообразил. а ответ на вопрос
> [1] таки будет?
>
Есс-но нет. Поскольку такого ответа быть не может.
> и вообще: а какой смысл в этой задаче? подобным образом
> всё равно меряют промежутки времени. "начато тогда-то, закончилось
> тогда-то, длилось столько-то". без начальной точки отсчёта
> вопрос бессмысленен и ответа не имеет.
Ну так это ты так думаешь. А есть и иные, увы. Эти иные хотятчтобы их желания выполнялись. Но где взять волшебную палочку, или где выловить золотую рыбку, ну или хотя бы "говорящую" щуку? :-)
Ещё один бред. (Я имею в виду сабж). Достали!
Ketmar (2007-04-29 00:29:00) [29]кстати, я с устатку не сразу сообразил. а ответ на вопрос [1] таки будет?
и вообще: а какой смысл в этой задаче? подобным образом всё равно меряют промежуткивремени. "начато тогда-то, закончилось тогда-то, длилось столько-то". без начальной точки отсчёта вопрос бессмысленен и ответа не имеет.
Германн (2007-04-29 00:25:00) [30]
> Я так думаю, что с такой задачей уже кто-то умнее меня сталкивался
> и видели или знают хорошее решение. ?
Ага. Я решал такую задачу не далее как ~2 недели назад. Делал "бредовую" программу для демонстрации на выставке "бредовой" идеи. В ТЗ было что-то типа "в статусной строке вывести время, которое проработала программа в минутах и секундах". Вывел в днях, минутах и секундах. Поругался с автором ТЗ (правда по другому поводу, но и мой "вывод количества дней" тоже был упомянут). Но на месяцы, годы, столетия, тысячелетия я не замахивался. Я не волшебник, я только учусь! :)
Asail (2007-04-29 00:10:00) [31]
> Никаких проблем, ровно, а не приблизительно - два месяца
Это если считать что в месяце 31 день, а не 30, 29 и 28 (что тоже иногда случается)
antonn (2007-04-28 23:42:00) [32]дней случайно не 61 "и еще немножко" ?
Anatoly Podgoretsky (2007-04-28 23:28:00) [33]> Asail (28.04.2007 22:14:08) [8]
Никаких проблем, ровно, а не приблизительно - два месяца, вот если бы предложил 61.3453, то я бы задумался, а вот если бы спросил про дней, то сразу бы повесился, я что идиот решать не решаемую задачу.
Anatoly Podgoretsky (2007-04-28 23:26:00) [34]> Asail (28.04.2007 19:42:06) [6]
Тогда надо дальше, приблизительно два года
Ketmar (2007-04-28 22:35:00) [35]мда. ступил, каюсь.
Asail (2007-04-28 22:14:00) [36]
> а что, DecodeDateTime() (или как её там) -- не декодит?
> перевести секунды в TDateTime -- не проблема. дальше взял
> -- и ручками сложил себе строку.
Ну, вот тебе пример:
var
DT : TDateTime;
begin
DT := 62.3453;
end;
Ну-ка скажи сколько это месяцев, дней, часов, минут и секунд (особенно месяцев).
DecodeDateTime декодит временную точку а не отрезок.
Ketmar (2007-04-28 20:18:00) [37]а что, DecodeDateTime() (или как её там) -- не декодит? перевести секунды в TDateTime -- не проблема. дальше взял -- и ручками сложил себе строку.
Asail (2007-04-28 19:42:00) [38]
> Можно и дальше, типа "приблизительно 2 года 3 месяца и 19
> секунд" :))
Ни фига себе приблизительно... Т.е. 19 сек и ошибка на сутки - это нормально? Тогда уж, "приблизительно 2 года 3 месяца" и Бог с ними, с секундами...
Desdechado (2007-04-28 19:39:00) [39]
> а дальше никак.
Можно и дальше, типа " приблизительно2 года 3 месяца и 19 секунд" :))
Asail (2007-04-28 19:38:00) [40]
> Я так думаю, что с такой задачей уже кто-то умнее меня сталкивался
> и видели или знают хорошее решение. ?
Нету такого... В смысле, смотри [1]...