begin process at 2010 02 10 07:31:29
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date / Heure

 > PREMIER JOUR D'UNE SEMAINE

PREMIER JOUR D'UNE SEMAINE


 Information sur la source

Note :
6 / 10 - par 1 personne
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Date / Heure Source .NET ( DotNet ) Classé sous :jour, semaine, premier Niveau :Débutant Date de création :02/06/2005 Vu :15 215

Auteur : daivil

Ecrire un message privé
Site perso
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

Cette fonction permet de récupérer le premier jour d'une semaine en fonction de son numéro et de l'année en question.

Source

  • private DateTime getPremierJourSemaine(int numeroSemaine,int annee)
  • {
  • DateTime temp = new DateTime(annee,1,1);
  • int compteurSemaine = 1;
  • //D'abord, on va se caler sur le premier jeudi de l'année
  • //Le premier jeudi dans l'année représente la première semaine
  • //http://www.cl.cam.ac.uk/%7Emgk25/iso-time.html
  • while(temp.DayOfWeek != DayOfWeek.Thursday)
  • {
  • temp = temp.AddDays(1);
  • }
  • //Maintenant, on revient sur le lundi précédent
  • while(temp.DayOfWeek != DayOfWeek.Monday)
  • temp = temp.AddDays(-1);
  • //On va avancer de 7 jours en 7 jours pour trouver notre semaine
  • while(compteurSemaine < numeroSemaine)
  • {
  • temp = temp.AddDays(7);
  • compteurSemaine++;
  • }
  • return temp;
  • }
private DateTime getPremierJourSemaine(int numeroSemaine,int annee)
{
	DateTime temp = new DateTime(annee,1,1);
	int compteurSemaine = 1;

	//D'abord, on va se caler sur le premier jeudi de l'année
	//Le premier jeudi dans l'année représente la première semaine
	//http://www.cl.cam.ac.uk/%7Emgk25/iso-time.html
	while(temp.DayOfWeek != DayOfWeek.Thursday)
	{
		temp = temp.AddDays(1);
	}

	//Maintenant, on revient sur le lundi précédent
	while(temp.DayOfWeek != DayOfWeek.Monday)
		temp = temp.AddDays(-1);

	//On va avancer de 7 jours en 7 jours pour trouver notre semaine
	while(compteurSemaine < numeroSemaine)
	{
		temp = temp.AddDays(7);
		compteurSemaine++;
	}

	return temp;
}

 Conclusion

Voila, rien de bien méchant mais ca peut toujours servir :)


 Sources du même auteur

Source .NET (Dotnet) REVERSE DNS - DNS INVERSÉ

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) CALCUL DATES & JOURS FÉRIÉS par DCTC33
Source avec Zip Source avec une capture Source .NET (Dotnet) DIFFÉRENCE DE TEMPS, XML, POCKETPC / WINFORMS...... par Steph115
Source avec Zip Source avec une capture Source .NET (Dotnet) HORLOGE/ALARME NUMÉRIQUE par Bio3G
Source avec Zip Source avec une capture Source .NET (Dotnet) COMPTE À REBOURS par Azema
Source .NET (Dotnet) CLASSE DATE AVEC QUELQUES FONCTIONS par ricklekebekoi

 Sources en rapport avec celle ci

Source .NET (Dotnet) CALCUL DU NUMÉRO DE SEMAINE par Mercusyo
Source .NET (Dotnet) JOURS FÉRIÉS ET DIMANCHE par sunny

Commentaires et avis

Commentaire de sebmafate le 02/06/2005 17:15:57 administrateur CS

la démarche est bonne... mais je pense qu'il a plus simple

Commentaire de JulSoft le 02/06/2005 19:02:42

je pense aussi qu'il y a plus simple
on doit pouvoir le faire en conaissant le jour du 1er janvier de l'année en question et, sauf erreur de ma part, il existe une fonction pour ça (je confond peut être avec le PHP où la fonction existe bel et bien)

Commentaire de daivil le 04/06/2005 09:23:24

J'ai bien essayé de faire plus simple mais la classe DateTime ne semble pas gérer les semaines :)

Commentaire de flashkel le 09/07/2007 14:44:39

Avec une seule boucle pour info avec la classe Calendar.

private  DateTime getPremierJourSemaine(int numeroSemaine,int annee)
        {
            Calendar cal = CultureInfo.InvariantCulture.Calendar;
            DateTime date=new DateTime(annee,1,1);
                             while(numeroSemaine!=cal.GetWeekOfYear(date,CalendarWeekRule.FirstFourDayWeek,DayOfWeek.Monday))
                date=date.AddDays(1);
            return date;
        }

Commentaire de flashkel le 09/07/2007 14:48:06

doh!
mettre

date=date.AddDay(7);

plutot que

date=date.AddDay(1);

Commentaire de whismeril le 09/10/2009 21:48:28

pour eviter la boucle:

using System.Globalization;

        private DateTime getPremierJourSemaine(int numeroSemaine, int annee)
        {
            Calendar cal = CultureInfo.InvariantCulture.Calendar;

            //initialise le premier janvier de l'année
            DateTime date = new DateTime(annee, 1, 1);

            //Cherche le lundi suivant
            int Jour = Convert.ToInt32(date.DayOfWeek);
            date = date.AddDays(8 - Jour);

            //extrait le numéro de semaine du lundi
            int Semaine = cal.GetWeekOfYear(date, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);

            //ajoute le nombre de semaine
            Semaine = 7 * (numeroSemaine - Semaine);
            date = date.AddDays(Semaine);

            return date;
        }

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Question DateTime [ par Spidard ] Bonjour. J'aimerais savoir comment cr&#233;er un objet DateTime, ou m&#234;me String, peut importe du moment qu'il "ressemble" &#224; une date a parti Jour de la semaine [ par T103 ] Bonjour a tous,Voila je n'arrive pas à afficher le jour d'une semaine, j'utilise DateTime.now.day mais il me retourne un int, je voudrais savoir si c' vérifier si on est un jour de la semaine [ par fabian86 ] bonjour,J'aimerai savoir s'il y a une autre façon de vérifier si une telle date correspond à un tel jour que par la propriété  dayOfWeek  == dayOfWeek nom du jour de la semaine datetime format [ par olibara ] BonjourPour construire une chaine date "20081111" a partir d"un datetime, je faisDateTime.Now.ToString("yyyyMMdd");Mais comment faire si je veux avoir Comment mettre à jour un onglet (TabPage) ? [ par vinok ] Bonjour,Je veux faire un planning comme ceci :A chaque changement de semaine (clique sur l'un des boutons "semaine précéden version d'evaluation [ par obyone10 ] bonjour tout le monde bon voila j'ai créer une base donnes avec access 2007 j'ai envie de la lancer en version d'évaluation pour période ex ample 10 j Revenir a un formulaire [ par barnasanta ] Voila enfaite mon programme a pour but de faire apprendre les tables a des enfants ... seulement je désire avoir n formulaire de choix et un formulair Mise à jour combobox [ par luudii34 ] Bonjour!!! Sur un premier formulaire (form1) j'ai une combobox qui se remplit a partir de ma base de données. En cliquant sur un bouton j'accède a un [C#] Condition dateTimePicker (samedi ou dimanche) [ par Stargirlfr ] Bonsoir, Je souhaiterais savoir s'il existe des fonctions qui permettent de faire des conditions sur les dateTimePicker ?Par exemple dire : "si le jou Faire une mise a jour d'une application en c# [ par redox87 ] Bonjour,je veux savoir comment en peut faire des mises a jours des applications en C#, le problème c'est que j'ai des applications portables sur ma cl


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,920 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales