Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Время из секунд к "человеческому" виду.


Страницы:   1 2 3

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]...


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо