DateTime
** "Ressemble à JavaScript, le cerveau (contenu) est Ruby, (la stabilité est AC / DC)" ** Langage de script Kinx ). La langue est la bibliothèque. Alors, comment utiliser la bibliothèque.
Cette fois, c'est DateTime. Je l'ai rendu disponible dans Range.
using DateTime
La bibliothèque DateTime n'est pas intégrée, utilisez donc la directive using pour la charger explicitement.
using DateTime;
L'instanciation se fait essentiellement en créant un nouvel objet DateTime.
new DateTime ()
... instancié à l'heure actuellenew DateTime (dateString)
... Analyse et instanciation d'une chaînenew DateTime (Unixtime)
... instancié à partir de l'époque UNIXnew DateTime (année, mois, jour [, heure, minute, seconde])
... Instanciez en spécifiant individuellement la date et l'heureCependant, vous pouvez également effectuer les opérations suivantes (il suffit de le renvoyer comme nouveau en interne). Veuillez utiliser celui que vous aimez.
DateTime.parse(...)
DateTime(...)
De plus, dateString
interprète le format suivant.
"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"
L'objet DateTime a les méthodes suivantes.
Méthode | Aperçu des opérations |
---|---|
isLeapYear() |
Renvoie vrai si c'est une année humide |
unixtime() |
Renvoie l'heure de l'époque Unix de la date et de l'heure actuelles |
datetime() |
Renvoie un objet qui représente la date et l'heure actuelles |
year() |
"Année" de la date et de l'heure actuelles |
month() |
"Mois" de la date et de l'heure actuelles |
day() |
"Jour" de la date et de l'heure actuelles |
hour() |
"Heure" de la date et de l'heure actuelles |
minute() |
"Minute" de la date et de l'heure actuelles |
second() |
"Secondes" de la date et de l'heure actuelles |
weekday() |
"Semaine" de la date et de l'heure actuelles (0:dimanche, 1:Lundi, ..., 6:Samedi) |
isSunday() |
Renvoie vrai dimanche |
isMonday() |
Renvoie vrai lundi |
isTuesday() |
Renvoie vrai mardi |
isWednesday() |
Renvoie vrai mercredi |
isThursday() |
Renvoie vrai jeudi |
isFriday() |
Renvoie vrai vendredi |
isSaturday() |
Renvoie vrai si samedi |
clone() |
Renvoie une copie de l'objet date et heure |
addDay(day) |
Objet date et heureday Avancez la journée (destructif) |
subDay(day) |
Objet date et heureday Jour de retour (destructeur) |
addMonth(month) |
Objet date et heuremonth Avancer des mois (destructif) |
subMonth(month) |
Objet date et heuremonth Mois en arrière (destructif) |
next() |
Renvoie un nouvel objet de date et d'heure représentant le jour suivant |
+(day) |
day Renvoie un nouvel objet de date et d'heure qui représente le lendemain |
-(day) |
day Renvoie un nouvel objet de date et d'heure qui représente la veille |
>>(month) |
month Renvoie un nouvel objet de date et d'heure qui représente des mois plus tard |
<<(month) |
month Renvoie un nouvel objet de date et d'heure représentant le mois précédent |
<=>(dt) |
0:Même date et heure,-1: dt La date et l'heure les plus récentes sont-elles 1: dt Est la date et l'heure antérieures |
format(fmtString) |
fmtString Format selon le format de. Les formats pris en charge sont les suivants.%YYYY% :Année à 4 chiffres,%YY% :Année à deux chiffres%MM% :Mois à deux chiffres,%M% :Mois%DD% :Jour à deux chiffres,%D% :journée%hh% :Quand c'est 2 chiffres%h% :Temps%mm% :Minutes à 2 chiffres,%m% :Minutes%ss% :2 chiffres secondes,%s% :Secondes |
Si vous déplacez d'un mois avec «<<» ou «>>» et que le même jour n'existe pas dans le mois correspondant, le dernier jour de ce mois est utilisé à la place.
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
Cela peut se comporter de manière inattendue (avec Ruby), comme suit:
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
Pour l'utiliser dans Range, vous pouvez définir la méthode next
et la méthode <=>
. Ainsi, l'objet DateTime peut être utilisé dans Range.
using DateTime;
(DateTime(2020,1,1)..DateTime(2020,1,10))
.each(&(d) => System.println(d));
Puisqu'il s'agit de «..», le dernier jour est inclus. Dans le cas de «...», le dernier jour n'est pas inclus.
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
Puisqu'il peut être utilisé dans Range, il peut être utilisé tel quel avec for-in.
using DateTime;
for (var d in DateTime(2020,1,1)...DateTime(2020,1,10)) {
System.println(d);
}
Une boucle qui n'inclut pas le dernier jour.
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
Cela fait environ six mois que j'ai commencé à le fabriquer. Vous pouvez faire différentes choses. Votre prochain objectif n'est-il pas de pouvoir enrichir la bibliothèque et créer une sorte d'application? Si vous pouvez créer rapidement une application dans un but de niche, vous pourrez peut-être trouver une place quelque part.
À la prochaine.