[JAVA] Bibliothèque Kinx --DateTime

DateTime

introduction

** "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.

Comment utiliser

using DateTime

La bibliothèque DateTime n'est pas intégrée, utilisez donc la directive using pour la charger explicitement.

using DateTime;

Instanciation

L'instanciation se fait essentiellement en créant un nouvel objet DateTime.

Cependant, vous pouvez également effectuer les opérations suivantes (il suffit de le renvoyer comme nouveau en interne). Veuillez utiliser celui que vous aimez.

De plus, dateString interprète le format suivant.

Méthode

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 heuredayAvancez la journée (destructif)
subDay(day) Objet date et heuredayJour de retour (destructeur)
addMonth(month) Objet date et heuremonthAvancer des mois (destructif)
subMonth(month) Objet date et heuremonthMois en arrière (destructif)
next() Renvoie un nouvel objet de date et d'heure représentant le jour suivant
+(day) dayRenvoie un nouvel objet de date et d'heure qui représente le lendemain
-(day) dayRenvoie un nouvel objet de date et d'heure qui représente la veille
>>(month) monthRenvoie un nouvel objet de date et d'heure qui représente des mois plus tard
<<(month) monthRenvoie un nouvel objet de date et d'heure représentant le mois précédent
<=>(dt) 0:Même date et heure,-1: dtLa date et l'heure les plus récentes sont-elles 1: dtEst la date et l'heure antérieures
format(fmtString) fmtStringFormat 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

Fin du mois

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

en conclusion

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.

Recommended Posts

Bibliothèque Kinx --DateTime
Bibliothèque Kinx --Obtenir
Bibliothèque Kinx - Processus
Bibliothèque de compilateur Kinx Library-JIT
Bibliothèque de compilateur Kinx Library-JIT (édition supplémentaire)