Maison > développement back-end > C++ > Comment puis-je calculer efficacement les différences de dates en années, mois, semaines et jours ?

Comment puis-je calculer efficacement les différences de dates en années, mois, semaines et jours ?

Barbara Streisand
Libérer: 2025-01-05 21:53:41
original
145 Les gens l'ont consulté

How Can I Efficiently Calculate Date Differences in Years, Months, Weeks, and Days?

Calcul des différences de date en année/mois/semaine/jour

Lorsque nous sommes confrontés à la tâche de déterminer la différence entre deux dates, il est impératif reconnaître les complexités potentielles impliquées. Le nombre de jours peut varier et des concepts tels que les années bissextiles introduisent d'autres complications.

Pour calculer efficacement cette différence, envisagez de définir une structure de période. Cette structure encapsulera les éléments des années, des mois et des jours :

public struct Period
{
    // ... (Definition of properties omitted)
}
Copier après la connexion

Ensuite, implémentez l'opérateur ' " pour permettre l'ajout d'un point à une date :

public static DateTime operator +(DateTime date, Period period)
{
    // ... (Implementation omitted)
}
Copier après la connexion

Enfin, créez une méthode Différence dans la structure Période pour calculer la différence entre deux dates :

public static Period Difference(DateTime first, DateTime second)
{
    // ... (Implementation omitted)
}
Copier après la connexion

Pour garantir l'exactitude, commencez par un ensemble complet de tests unitaires, abordant à la fois des scénarios de base et avancés, y compris les années bissextiles.

Calcul des semaines

Bien que les semaines se composent toujours de 7 jours, il est important d'être conscient que les périodes négatives devrait être évité. Pour extraire les informations sur la semaine et le jour d'une période, utilisez la logique suivante :

int years = period.Years;
int months = period.Months;
int weeks = period.Days / 7;
int daysWithinWeek = period.Days % 7;
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal