Пређи на садржај

Модул:Дате/док

Izvor: Vojna Enciklopedija

Ово је документациона подстраница за Модул:Date

Тхис модуле провидес дате фунцтионс фор усе бy отхер модулес. Датес ин тхе Грегориан цалендар анд тхе Јулиан цалендар аре суппортед, фром 9999 БЦЕ то 9999 ЦЕ. Тхе цалендарс аре пролептиц—тхеy аре ассумед то апплy ат алл тимес wитх но иррегуларитиес.

А дате, wитх ан оптионал тиме, цан бе специфиед ин а вариетy оф форматс, анд цан бе цонвертед фор дисплаy усинг а вариетy оф форматс, фор еxампле, 1 Април 2016 ор Април 1, 2016. Тхе пропертиес оф а дате инцлуде итс Јулиан дате анд итс Грегориан сериал дате, ас wелл ас тхе даy-оф-wеек анд даy-оф-yеар.

Датес цан бе цомпаред (фор еxампле, date1 <= date2), анд цан бе усед wитх адд ор субтрацт (фор еxампле, date + '3 months'). Тхе дифференце бетwеен тwо датес цан бе детерминед wитх date1 - date2. Тхесе оператионс wорк wитх ботх Грегориан анд Јулиан цалендар датес, бут date1 - date2 ис нил иф тхе тwо датес усе дифферент цалендарс.

Тхе модуле провидес тхе фоллоwинг итемс.

Еxпорт Десцриптион
_current Табле wитх тхе цуррент yеар, монтх, даy, хоур, минуте, сецонд.
_Date Фунцтион тхат ретурнс а табле фор а специфиед дате.
_days_in_month Фунцтион тхат ретурнс тхе нумбер оф даyс ин а монтх.

Тхе фоллоwинг хас еxамплес оф усинг тхе модуле:

Форматтед оутпут

А дате цан бе форматтед ас теxт.

local Date = require('Module:Date')._Date
local text = Date(2016, 7, 1):text()          -- result is '1 July 2016'
local text = Date(2016, 7, 1):text('%-d %B')  -- result is '1 July'
local text = Date('1 July 2016'):text('mdy')  -- result is 'July 1, 2016'

Тхе фоллоwинг симплифиед форматтинг цодес аре аваилабле.

Цоде Ресулт
хм хоур:минуте, wитх "ам" ор "пм" ор вариант, иф специфиед (14:30 ор 2:30 пм ор вариант)
хмс хоур:минуте:сецонд (14:30:45)
yмд yеар-монтх-даy (2016-07-01)
мдy монтх даy, yеар (Јулy 1, 2016)
дмy даy монтх yеар (1 Јулy 2016)

Тхе фоллоwинг форматтинг цодес (симилар то стрфтиме) аре аваилабле.

Цоде Ресулт
Даy аббревиатион: Мон, Туе, ...
Даy наме: Мондаy, Туесдаy, ...
Даy оф wеек: 1 то 7 (Мондаy то Сундаy)
%w Даy оф wеек: 0 то 6 (Сундаy то Сатурдаy)
Даy оф монтх зеро-паддед: 01 то 31
Монтх аббревиатион: Јан то Дец
Монтх наме: Јануарy то Децембер
Монтх зеро-паддед: 01 то 12
%Y Yеар зеро-паддед: 0012, 0120, 1200
Хоур 24-хоур цлоцк зеро-паддед: 00 то 23
%I Хоур 12-хоур цлоцк зеро-паддед: 01 то 12
%п АМ ор ПМ ор ас ин оптионс
%M Минуте зеро-паддед: 00 то 59
Сецонд зеро-паддед: 00 то 59
Даy оф yеар зеро-паддед: 001 то 366
%-д Даy оф монтх: 1 то 31
%-м Монтх: 1 то 12
%-Y Yеар: 12, 120, 1200
%-Х Хоур: 0 то 23
%-M Минуте: 0 то 59
%-С Сецонд: 0 то 59
%-ј Даy оф yеар: 1 то 366
%-I Хоур: 1 то 12
%% %

Ин аддитион, %{property} (wхере property ис анy пропертy оф а дате) цан бе усед.

Фор еxампле, Date('1 Feb 2015 14:30:45 A.D.') хас тхе фоллоwинг пропертиес.

Цоде Ресулт
%{цалендар} Грегориан
%{yеар} 2015
%{монтх} 2
%{даy} 1
%{хоур} 14
%{минуте} 30
%{сецонд} 45
%{даyаббр} Сун
%{даyнаме} Сундаy
%{даyофwеек} 0
%{доw} 0 (саме ас даyофwеек)
%{даyофwеекисо} 7
%{доwисо} 7 (саме ас даyофwеекисо)
%{даyофyеар} 32
%{ера} А.D.
%{гсд} 735630 (нумберс оф даyс фром 1 Јануарy 1 ЦЕ; тхе фирст ис даy 1)
%{јулиандате} 2457055.1046875 (Јулиан даy)
%{јд} 2457055.1046875 (саме ас јулиандате)
%{ислеапyеар} фалсе
%{монтхдаyс} 28
%{монтхаббр} Феб
%{монтхнаме} Фебруарy

Соме схортцутс аре аваилабле. Гивен date = Date('1 Feb 2015 14:30'), тхе фоллоwинг ресултс wоулд оццур.

Цоде Десцриптион Еxампле ресулт Еqуивалент формат
дате:теxт('%ц') дате анд тиме 2:30 пм 1 Фебруарy 2015 %-I:%M %п %-д %Б %-Y %{ера}
дате:теxт('%x') дате 1 Фебруарy 2015 %-д %Б %-Y %{ера}
дате:теxт('%X') тиме 2:30 пм %-I:%M %п

Јулиан дате

Тхе фоллоwинг хас ан еxампле оф цонвертинг а Јулиан дате то а дате, тхен обтаининг информатион абоут тхе дате.

-- Code                                                -- Result
Date = require('Module:Date')._Date
date = Date('juliandate', 320)
number = date.gsd                                      -- -1721105
number = date.jd                                       -- 320
text = date.dayname                                    -- Saturday
text = date:text()                                     -- 9 October 4713&nbsp;BC
text = date:text('%Y-%m-%d')                           -- 4713-10-09
text = date:text('%{era} %Y-%m-%d')                    -- BC 4713-10-09
text = date:text('%Y-%m-%d %{era}')                    -- 4713-10-09&nbsp;BC
text = date:text('%Y-%m-%d %{era}', 'era=B.C.E.')      -- 4713-10-09&nbsp;B.C.E.
text = date:text('%Y-%m-%d', 'era=BCNEGATIVE')         -- -4712-10-09
text = date:text('%Y-%m-%d', 'era=BCMINUS')            -- −4712-10-09 (uses Unicode MINUS SIGN U+2212)
text = Date('juliandate',320):text('%{gsd} %{jd}')     -- -1721105 320
text = Date('Oct 9, 4713 B.C.E.'):text('%{gsd} %{jd}') -- -1721105 320
text = Date(-4712,10,9):text('%{gsd} %{jd}')           -- -1721105 320

Дате дифференцес

Тхе дифференце бетwеен тwо датес цан бе детерминед wитх date1 - date2. Тхе ресулт ис валид иф ботх датес усе тхе Грегориан цалендар ор иф ботх датес усе тхе Јулиан цалендар, отхерwисе тхе ресулт ис нил. Ан аге анд дуратион цан бе цалцулатед фром а дате дифференце.

Фор еxампле:

-- Code                                      -- Result
Date = require('Module:Date')._Date
date1 = Date('21 Mar 2015')
date2 = Date('4 Dec 1999')
diff = date1 - date2
d = diff.age_days                            -- 5586
y, m, d = diff.years, diff.months, diff.days -- 15, 3, 17 (15 years + 3 months + 17 days)
y, m, d = diff:age('ymd')                    -- 15, 3, 17
y, m, w, d = diff:age('ymwd')                -- 15, 3, 2, 3 (15 years + 3 months + 2 weeks + 3 days)
y, m, w, d = diff:duration('ymwd')           -- 15, 3, 2, 4
d = diff:duration('d')                       -- 5587 (a duration includes the final day)

А дате дифференце холдс тхе оригинал датес еxцепт тхеy аре сwаппед со diff.date1 >= diff.date2 (diff.date1 ис тхе море рецент дате). Тхис ис схоwн ин тхе фоллоwинг.

date1 = Date('21 Mar 2015')
date2 = Date('4 Dec 1999')
diff = date1 - date2
neg = diff.isnegative                        -- false
text = diff.date1:text()                     -- 21 March 2015
text = diff.date2:text()                     -- 4 December 1999
diff = date2 - date1
neg = diff.isnegative                        -- true (dates have been swapped)
text = diff.date1:text()                     -- 21 March 2015
text = diff.date2:text()                     -- 4 December 1999

А дате дифференце алсо холдс а тиме дифференце:

date1 = Date('8 Mar 2016 0:30:45')
date2 = Date('19 Jan 2014 22:55')
diff = date1 - date2
y, m, d = diff.years, diff.months, diff.days      -- 2, 1, 17
H, M, S = diff.hours, diff.minutes, diff.seconds  -- 1, 35, 45

А дате дифференце цан бе аддед то а дате, ор субтрацтед фром а дате.

date1 = Date('8 Mar 2016 0:30:45')
date2 = Date('19 Jan 2014 22:55')
diff = date1 - date2
date3 = date2 + diff
date4 = date1 - diff
text = date3:text('ymd hms')        -- 2016-03-08 00:30:45
text = date4:text('ymd hms')        -- 2014-01-19 22:55:00
equal = (date1 == date3)            -- true
equal = (date2 == date4)            -- true

Тхе аге анд дуратион метходс оф а дате дифференце аццепт а цоде тхат идентифиес тхе цомпонентс тхат схоулд бе ретурнед. Ан еxтра даy ис инцлудед фор тхе дуратион метход бецаусе ит инцлудес тхе финал даy.

Цоде Ретурнед валуес
'ymwd' yеарс, монтхс, wеекс, даyс
'ymd' yеарс, монтхс, даyс
'ym' yеарс, монтхс
'y' yеарс
'm' монтхс
'wd' wеекс, даyс
'w' wеекс
'd' даyс