03.12.2010, 08:31 | #1 |
MCTS
|
Обрезание секунд у типа TimeHour24
Подскажите, какой функцией обрезать в джобе секунды в поле extended type TimeHour24.
__________________
farlander.ru |
|
03.12.2010, 08:51 | #2 |
Участник
|
div?
|
|
|
За это сообщение автора поблагодарили: farlander (1), S.Kuskov (2). |
03.12.2010, 09:04 | #3 |
Участник
|
Не знаю есть ли каки-то стандартные функции для работы со временем. В большинстве случаев они не нужны, потому как в аксапте тип TimeOfDay является целочисленным и представляет собой количество секунд с начала суток. Таким образом время без секунд можно найти например вот так:
X++: static void JobTestTime20101203(Args _args) { #TimeConstants timeOfDay t = timenow(); ; t = t - (t mod #secondsPerMinute); info(time2str(t, 1, 1)); } Последний раз редактировалось S.Kuskov; 03.12.2010 в 09:16. |
|
|
За это сообщение автора поблагодарили: b_nosoff (1), farlander (1), samolalex (1). |
03.12.2010, 09:30 | #4 |
Участник
|
Есть метод в классе Global Time2StrHM:
X++: static void TestTimeJob(Args _args) { TimeHour24 tm = timenow(); ; info(Time2StrHM(tm)); } X++: static TempStr time2StrHM(int tIME) { return num2str( tIME div 3600 ,2,0,0,0)+':'+ num2Str0(tIME mod 3600 div 60,2,0,0,0); }
__________________
С уважением, Александр. Последний раз редактировалось samolalex; 03.12.2010 в 09:58. |
|
|
За это сообщение автора поблагодарили: Zabr (3), farlander (1). |
03.12.2010, 13:40 | #5 |
Участник
|
Спасибо за Time2StrHM, не знал. В ней оказался еще один большой плюс. Например, вы хотите показать не время, а временную разницу между двумя моментами времени, причем они могут быть в разные сутки (то есть разница больше 24 часов). Так вот, функция time2str показывает максимальное время 24:59:59 (если больше, показыват строку "????????"). А Time2StrHM - любое !
Как говорится, век живи - век учись.... |
|
|
За это сообщение автора поблагодарили: S.Kuskov (1), samolalex (1). |
03.12.2010, 14:01 | #6 |
Участник
|
Цитата:
Сообщение от Zabr
Спасибо за Time2StrHM, не знал. В ней оказался еще один большой плюс. Например, вы хотите показать не время, а временную разницу между двумя моментами времени, причем они могут быть в разные сутки (то есть разница больше 24 часов). Так вот, функция time2str показывает максимальное время 24:59:59 (если больше, показыват строку "????????"). А Time2StrHM - любое !
Как говорится, век живи - век учись....
__________________
С уважением, Александр. |
|
03.12.2010, 14:42 | #7 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: farlander (1). |
03.12.2010, 15:02 | #8 |
Участник
|
Цитата:
X++: static void TestTime(Args _args) { ; info(time2str(str2time("24:59:59"), 1, 1)); //Возвращает "??????" info(time2str(str2time("24:00:00"), 1, 1)); //Возвращает "24:00:00" info(time2str(str2time("24:00:01"), 1, 1)); //Возвращает "??????" }
__________________
С уважением, Александр. |
|
03.12.2010, 15:52 | #9 |
Участник
|
Zabr прав. Просто str2time("24:59:59") возвращает -1.
samolalex, попробуйте time2str(89999) |
|
03.12.2010, 15:57 | #10 |
Участник
|
Цитата:
Невероятно, но факт: X++: static void TestTime(Args _args) { ; info(time2str(89999,1,1)); //Возвращает "24:59:59" }
__________________
С уважением, Александр. Последний раз редактировалось samolalex; 03.12.2010 в 15:59. |
|
03.12.2010, 16:08 | #11 |
Участник
|
Оказывается ничего невероятного нет, диапазон отклонения от Всемирного координированного времени UTC в секундах составляет [-89999, 89999].
Инфу взял отсюда и отсюда
__________________
С уважением, Александр. Последний раз редактировалось samolalex; 03.12.2010 в 16:16. |
|
Теги |
div |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|