Maison > développement back-end > C++ > Comment calculer le numéro de semaine d'une date donnée en C ?

Comment calculer le numéro de semaine d'une date donnée en C ?

DDD
Libérer: 2024-11-26 10:50:10
original
490 Les gens l'ont consulté

How to Calculate the Week Number of a  Given Date in C  ?

Comment calculer le numéro de semaine pour une date donnée

Étant donné une date, déterminer le numéro de semaine pour cette date dans son année respective peut être réalisé à travers les étapes suivantes :

  1. Identifier le premier jour de la première semaine du année : Déterminez le lundi le plus proche du 1er janvier de l'année donnée. Cela peut être trouvé mathématiquement en ajoutant ou en soustrayant des jours du 1er janvier en fonction de son jour de la semaine (dimanche : 1, lundi : 0, mardi : -1, mercredi : -2, jeudi : -3, vendredi : 3, samedi : 2).
  2. Calculez le nombre de semaines complètes entre la date donnée et le premier jour de la semaine 1 : Soustrayez le premier jour de la semaine 1 de la date donnée pour obtenir le nombre de jours écoulés. En divisant cela par 7, vous obtiendrez le nombre de semaines complètes.
  3. Calculez le reste : Déterminez les jours restants en divisant les jours écoulés par 7 et en calculant le reste. Cela représente le nombre de jours dans la semaine en cours.
  4. Attribuer un numéro de semaine : La combinaison des semaines entières et des jours restants donne le numéro de semaine.

Par exemple , pour le 10 janvier 2008 :

  1. Le premier jour de la semaine 1 est le 7 janvier, 2008, qui est un lundi.
  2. Le nombre de jours écoulés est de 10 - 7 = 3.
  3. Le nombre de semaines entières est de 3/7 = 0.
  4. Le le reste est de 3 jours.
  5. Par conséquent, le numéro de la semaine est 2 (puisque nous commençons par la semaine 1).

En C , cet algorithme peut être implémenté comme suit :

#include <iostream>
#include <ctime>

using namespace std;

int main() {
  // Get the user's input date
  tm inputDate;
  cout << "Enter the date (YYYY-MM-DD): ";
  cin >> get_time(&inputDate, "%Y-%m-%d");

  // Calculate the first day of week 1
  tm firstDayOfWeek1;
  time_t firstDaySeconds = mktime(&inputDate);
  
  // Calculate the number of elapsed days
  long elapsedDays = difftime(firstDaySeconds, mktime(&firstDayOfWeek1));

  // Calculate the number of whole weeks
  int wholeWeeks = elapsedDays / (7 * 24 * 60 * 60);

  // Calculate the remainder
  int remainder = elapsedDays % (7 * 24 * 60 * 60);

  // Calculate the week number
  int weekNumber = wholeWeeks + (remainder > 0);

  // Print the week number
  cout << "The week number is: " << weekNumber << endl;

  return 0;
}
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal