Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

9 884 Posts in 5 358 Topics- by 1 216 Members - Latest Member: santini862

25 May 2019, 19:24
Select Language English | Russian ru | German
Main PageIRC Client KVIrc forumRussian talksСкриптингОбъектно-ориентированный скриптингРабота с датой и временем
Pages: [1]
Print
Author Topic: Работа с датой и временем  (Read 9338 times)
0 Members and 1 Guest are viewing this topic.
Maximusya
Глобальный модератор
*****

Репутация: 49
Gender: Male
Posts: 343



View Profile
« on: 1 December 2007, 19:41 »

Так как довольно часто приходилось работать с датами и временем, решил оформить все в виде алиасов и классов. Классы сейчас в разработке, а несколько алиасов, в которых я чувствую потребность, во вложенной файле DateTimeAliases.kvs.
Там есть следующие алиасы:
DateTime::SubtractDates - вычисляет разницу в секундах между двумя датами
DateTime::unixtime - вычисляет unixtime для переданной даты
DateTime::isLeapYear - проверяет, не високосный ли год
DateTime::UTCOffset - возвращает разницу между локальным временем и UTC (оно же GMT) ($date(z) у меня не работает)

Они помещены в пространство имен DateTime. Туда же будут помещены классы (такие как DateTime, TimeSpan)

И в связи с наступающим Новым Годом - скриптик NY, использующий эти алиасы и сообщающий, сколько осталось до Нового Года  Grin
Code:
alias(NY)
{
%ny = $array(2008)
%currenttimeArr = $str.split(" ", $date("Y m d H M S"))
%secspassed = $DateTime::SubtractDates(%ny, %currenttimeArr)
%secs = $(%secspassed % 60);
%mins = $((%secspassed / 60) % 60);
%hours = $((%secspassed / 3600) % 24);
%days = $(%secspassed / 86400)
%timeleft = $b"До $k(3)Н$k(4)о$k(8)в$k(12)о$k(9)г$k(5)о $k(4)Г$k(2)о$k(12)д$k(8)а$k осталось"
if (%days>0) %timeleft << "%days\дн."
if (%hours>0 || %days>0) %timeleft << "%hours\ч."
if (%mins>0 || %hours>0 || %days>0) %timeleft << "%mins\мин."
if (%secs>0 || %mins>0 || %hours>0 || %days>0) %timeleft << "%secs\сек."
say %timeleft
}
Logged
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic