Maison  >  Article  >  développement back-end  >  Comment utiliser la bibliothèque de calendriers dans Go ?

Comment utiliser la bibliothèque de calendriers dans Go ?

WBOY
WBOYoriginal
2023-05-10 16:00:061679parcourir

Go est un langage compilé hautes performances, typé statiquement, facile à utiliser, doté d'un puissant support de concurrence et robuste. La bibliothèque standard de Go fournit également une multitude de fonctions et de packages pour répondre à divers besoins de développement, notamment la mise en œuvre de fonctions de calendrier. Dans cet article, nous expliquerons comment utiliser la bibliothèque de calendrier pour implémenter certaines fonctions de calendrier courantes dans Go.

Bibliothèque de calendriers dans Go Calendar

La bibliothèque standard Go fournit une bibliothèque de calendriers - un package horaire. Il s'agit d'un package permettant de traiter l'heure et les dates, mettant en œuvre des opérations de base sur les dates et les heures, y compris des calculs tels que les fuseaux horaires, les calendriers mensuels et les années bissextiles. La fonction du calendrier est de fournir certaines opérations de date courantes, telles que le calendrier mensuel, le calendrier grégorien en jour julien, le jour julien en calendrier grégorien, le jour de la semaine, le jugement des années bissextiles, etc.

Tout d'abord, nous pouvons importer le package time, puis créer un objet calendrier via la fonction Calendrier du package time.

import "time"

func main() {
    cal := time.Now().Calendar()
    ...
}

La fonction Calendar renvoie un objet de type Calendar. Si nous n'avons pas besoin de spécifier une date et une heure spécifiques lors de l'initialisation, nous pouvons directement utiliser la fonction Now pour obtenir l'heure et la date actuelles.

2. Obtenez les informations de calendrier du mois en cours

Nous pouvons utiliser la méthode MonthDays fournie par l'objet Calendar pour obtenir les informations de calendrier du mois en cours. Sa valeur de retour est un tableau bidimensionnel représentant les informations de date de chacun. jour de chaque semaine du mois.

cal := time.Now().Calendar()
weeks := cal.MonthDays()
fmt.Println(weeks)
// output: [[0 0 0 0 0 0 1] [2 3 4 5 6 7 8] [9 10 11 12 13 14 15] [16 17 18 19 20 21 22] [23 24 25 26 27 28 29] [30 31 0 0 0 0 0]]

Le code ci-dessus utilise d'abord la méthode Calendar pour obtenir l'objet calendrier actuel, puis appelle la méthode MonthDays pour obtenir les informations de calendrier du mois en cours.

3. Conversion entre le calendrier grégorien et le jour julien

L'objet Calendar fournit également les méthodes GregoriantoJulian et JulianToGregorian pour implémenter la conversion entre le calendrier grégorien et le jour julien.

// 公历转儒略日
t := time.Date(2022, 8, 1, 0, 0, 0, 0, time.UTC)
julian := cal.GregoriantoJulian(t.Year(), int(t.Month()), t.Day())
fmt.Println(julian) // output: 2459458

// 儒略日转公历
year, month, day := cal.JulianToGregorian(julian)
fmt.Printf("%d-%d-%d", year, month, day) // output: 2022-8-1

Le code ci-dessus utilise d'abord la fonction time.Date pour créer un objet horaire, spécifier l'année, le mois et le jour, puis utilise la méthode grégorien en julien pour le convertir en jour julien. Enfin, convertissez le jour julien en date du calendrier grégorien et utilisez la fonction Printf pour afficher les informations sur l'année, le mois et le jour.

4. Déterminer l'année bissextile

L'objet Calendar fournit également la méthode IsLeap, qui est utilisée pour déterminer si une année donnée est une année bissextile.

year := 2024
isLeap := cal.IsLeap(year)
fmt.Printf("%d年是闰年吗? %t
", year, isLeap) // output: 2024年是闰年吗? true

Dans le code ci-dessus, on passe dans une année à la méthode IsLeap, qui déterminera automatiquement si l'année est bissextile et renverra le résultat sous forme de valeur booléenne.

5. Obtenir le jour de la semaine

L'objet Calendrier fournit également la méthode Weekday, qui est utilisée pour obtenir le jour de la semaine un certain jour.

t := time.Date(2022, 8, 1, 0, 0, 0, 0, time.UTC)
weekday := cal.Weekday(t.Year(), int(t.Month()), t.Day())
fmt.Printf("%d-%d-%d是星期%s
", t.Year(), int(t.Month()), t.Day(), weekday.String()) // output: 2022-8-1是星期Monday

Le code ci-dessus crée un objet time, puis utilise la méthode Weekday pour obtenir le jour de la semaine correspondant à l'objet time, et utilise la méthode String pour convertir le jour de la semaine en informations de chaîne et l'afficher.

Conclusion

Dans Go, les opérations de date courantes peuvent être facilement mises en œuvre à l'aide de la bibliothèque de calendriers, notamment le calendrier mensuel, le calendrier grégorien et la conversion des jours juliens, la détermination des années bissextiles et l'obtention du jour de la semaine, etc. Grâce à l'exemple de code présenté dans cet article, je pense que tout le monde a compris les principes de base et les méthodes de mise en œuvre de ces opérations et peut les utiliser de manière flexible dans des applications pratiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:golang booléen chaîneArticle suivant:golang booléen chaîne