DateTime
** "Sieht aus wie JavaScript, Gehirn (Inhalt) ist Ruby, (Stabilität ist AC / DC)" ** Skriptsprache Kinx ). Die Sprache ist die Bibliothek. Also, wie man die Bibliothek benutzt.
Diesmal ist es DateTime. Ich habe es in Range verfügbar gemacht.
using DateTime
Die DateTime-Bibliothek ist nicht integriert. Verwenden Sie daher die using-Direktive, um sie explizit zu laden.
using DateTime;
Die Instanziierung erfolgt im Wesentlichen durch Erstellen eines neuen DateTime-Objekts.
new DateTime ()
... zur aktuellen Zeit instanziiertnew DateTime (dateString)
... Analysiert und instanziiert eine Zeichenfolgenew DateTime (Unixtime)
... instanziiert aus der UNIX-Epochenew DateTime (Jahr, Monat, Tag [, Stunde, Minute, Sekunde])
... Instanziieren Sie, indem Sie Datums- und Zeitinformationen einzeln angebenSie können jedoch auch Folgendes tun (geben Sie es einfach intern als neu zurück). Bitte verwenden Sie die, die Sie mögen.
DateTime.parse(...)
DateTime(...)
Außerdem interpretiert dateString
das folgende Format.
"2020-01-01"
、"2020-1-1"
"2020/01/01"
、"2020/1/1"
"2020-01-01T10:00:05"
、"2020-1-01T10:0:5"
"2020/01/01 10:00:05"
、"2020/1/01 10:0:5"
Das DateTime-Objekt verfügt über die folgenden Methoden.
Methode | Betriebsübersicht |
---|---|
isLeapYear() |
Gibt true zurück, wenn es ein feuchtes Jahr ist |
unixtime() |
Gibt die Unix-Epochenzeit des aktuellen Datums und der aktuellen Uhrzeit zurück |
datetime() |
Gibt ein Objekt zurück, das das aktuelle Datum und die aktuelle Uhrzeit darstellt |
year() |
"Jahr" des aktuellen Datums und der aktuellen Uhrzeit |
month() |
"Monat" des aktuellen Datums und der aktuellen Uhrzeit |
day() |
"Tag" des aktuellen Datums und der aktuellen Uhrzeit |
hour() |
"Uhrzeit" des aktuellen Datums und der aktuellen Uhrzeit |
minute() |
"Minute" des aktuellen Datums und der aktuellen Uhrzeit |
second() |
"Sekunden" des aktuellen Datums und der aktuellen Uhrzeit |
weekday() |
"Woche" des aktuellen Datums und der aktuellen Uhrzeit (0:Sonntag, 1:Montag, ..., 6:Samstag) |
isSunday() |
Gibt am Sonntag wahr zurück |
isMonday() |
Gibt am Montag true zurück |
isTuesday() |
Gibt am Dienstag wahr zurück |
isWednesday() |
Gibt am Mittwoch wahr zurück |
isThursday() |
Gibt am Donnerstag wahr zurück |
isFriday() |
Gibt am Freitag true zurück |
isSaturday() |
Gibt true zurück, wenn Samstag |
clone() |
Gibt eine Kopie des Datums- und Uhrzeitobjekts zurück |
addDay(day) |
Datums- und Uhrzeitobjektday Den Tag vorantreiben (destruktiv) |
subDay(day) |
Datums- und Uhrzeitobjektday Tag zurück (destruktiv) |
addMonth(month) |
Datums- und Uhrzeitobjektmonth Vormonate (destruktiv) |
subMonth(month) |
Datums- und Uhrzeitobjektmonth Vor einem Monat (destruktiv) |
next() |
Gibt ein neues Datums- und Uhrzeitobjekt zurück, das den nächsten Tag darstellt |
+(day) |
day Gibt ein neues Datums- und Uhrzeitobjekt zurück, das den Tag danach darstellt |
-(day) |
day Gibt ein neues Datums- und Uhrzeitobjekt zurück, das den Vortag darstellt |
>>(month) |
month Gibt ein neues Datums- und Uhrzeitobjekt zurück, das Monate später darstellt |
<<(month) |
month Gibt ein neues Datums- und Zeitobjekt zurück, das den Monat zuvor darstellt |
<=>(dt) |
0:Gleiches Datum und gleiche Uhrzeit,-1: dt Ist das spätere Datum und die spätere Uhrzeit, 1: dt Ist das frühere Datum und die frühere Uhrzeit |
format(fmtString) |
fmtString Formatieren Sie nach dem Format von. Die unterstützten Formate sind wie folgt.%YYYY% :4-stelliges Jahr,%YY% :Zweistelliges Jahr%MM% :Zweistelliger Monat,%M% :Mond%DD% :Zweistelliger Tag,%D% :Tag%hh% :Wenn es 2 Ziffern sind%h% :Zeit%mm% :2-stellige Minuten,%m% :Protokoll%ss% :2-stellige Sekunden,%s% :Sekunden |
Wenn Sie einen Monat mit "<<" oder ">>" verschieben und im entsprechenden Monat nicht derselbe Tag vorhanden ist, wird stattdessen der letzte Tag dieses Monats verwendet.
using DateTime;
System.println(DateTime("2001-3-28") << 1); // 2001/02/28 00:00:00
System.println(DateTime("2001-3-31") << 1); // 2001/02/28 00:00:00
Dies kann sich unerwartet (zusammen mit Ruby) wie folgt verhalten:
using DateTime;
System.println(DateTime("2001-1-31") >> 2); // 2001/03/31 00:00:00
System.println(DateTime("2001-1-31") >> 1 >> 1); // 2001/03/28 00:00:00
System.println(DateTime("2001-1-31") >> 1 >> -1); // 2001/01/28 00:00:00
Range
Um es in Range zu verwenden, können Sie die Methode "next" und die Methode "<=>" definieren. Das DateTime-Objekt kann also in Range verwendet werden.
using DateTime;
(DateTime(2020,1,1)..DateTime(2020,1,10))
.each(&(d) => System.println(d));
Da es ".." ist, ist der letzte Tag enthalten. Im Fall von "..." ist der letzte Tag nicht enthalten.
2020/01/01 00:00:00
2020/01/02 00:00:00
2020/01/03 00:00:00
2020/01/04 00:00:00
2020/01/05 00:00:00
2020/01/06 00:00:00
2020/01/07 00:00:00
2020/01/08 00:00:00
2020/01/09 00:00:00
2020/01/10 00:00:00
Da es in Range verwendet werden kann, kann es wie bei For-In verwendet werden.
using DateTime;
for (var d in DateTime(2020,1,1)...DateTime(2020,1,10)) {
System.println(d);
}
Eine Schleife, die den letzten Tag nicht enthält.
2020/01/01 00:00:00
2020/01/02 00:00:00
2020/01/03 00:00:00
2020/01/04 00:00:00
2020/01/05 00:00:00
2020/01/06 00:00:00
2020/01/07 00:00:00
2020/01/08 00:00:00
2020/01/09 00:00:00
Es ist ungefähr ein halbes Jahr her, seit ich angefangen habe, es zu machen. Sie können verschiedene Dinge tun. Ist es nicht Ihr nächstes Ziel, die Bibliothek zu bereichern und eine Art App zu erstellen? Wenn Sie schnell eine App für einen Nischenzweck erstellen können, können Sie möglicherweise irgendwo einen Platz finden.
Bis zum nächsten Mal.