IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Tous les jours de l'année au format date


Sujet :

C#

  1. #1
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    726
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 726
    Points : 266
    Points
    266
    Par défaut Tous les jours de l'année au format date
    J'aimerai récupérer tous les jours de l'année dans un tableau (ou une liste)
    sous la forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    01/01/2008
    02/01/2008
    03/01/2008
    ...
    Il y a beaucoup de classes avec des calendriers en C# mais laquelle est la plus adéquate ?

    merci

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DateTime dt = ...;
    Console.WriteLine(dt.ToString("dd/MM/yyyy"))

  3. #3
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    726
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 726
    Points : 266
    Points
    266
    Par défaut
    Ok mais je veux la liste de tous les jours de l'année, du premier janvier au 31 décembre.

    merci

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Ben tu pars du 1er janvier de l'année voulue, et tu boucles N fois en incrémentant le jour (avec DateTime.AddDays), N étant le nombre de jours dans l'année.
    Pour connaitre le nombre de jours dans l'année, tu peux vérifier si elle est bissextile avec DateTime.IsLeapYear

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 20
    Points : 23
    Points
    23
    Par défaut
    voici une focntion que je viens d tester pour la format de la date tu peut la manipuler comme tu veux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
     public static List<DateTime> getyear(int year)
            {
                List<DateTime> ldt = new List<DateTime>();
                DateTime dt = new DateTime(year, 1, 1);           
                TimeSpan ts = dt.AddYears(1) - dt;
                double cmp = ts.TotalDays;
                double i = cmp;
                while (cmp > 0)
                {
                    ldt.Add(dt.AddDays(i-cmp));
                    cmp--;
                }
                return (ldt.Count > 0 ? ldt : null);
            }

  6. #6
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    726
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 726
    Points : 266
    Points
    266
    Par défaut
    Citation Envoyé par bratomchi Voir le message
    voici une focntion que je viens d tester pour la format de la date tu peut la manipuler comme tu veux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
     public static List<DateTime> getyear(int year)
            {
                List<DateTime> ldt = new List<DateTime>();
                DateTime dt = new DateTime(year, 1, 1);           
                TimeSpan ts = dt.AddYears(1) - dt;
                double cmp = ts.TotalDays;
                double i = cmp;
                while (cmp > 0)
                {
                    ldt.Add(dt.AddDays(i-cmp));
                    cmp--;
                }
                return (ldt.Count > 0 ? ldt : null);
            }
    Ok mais ta fonction ne me donne que les jours du mois de janvier ...

  7. #7
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Décembre 2008
    Messages : 256
    Points : 311
    Points
    311
    Par défaut
    Beaucoup plus simple :

    1. Tu ouvres Excel
    2. Dans la cellule A1, tu tapes 01/01/2008
    3. Tu sélectionnes les cellules A1:A365
    4. Menu Edit/Fill/Series (je suis en Windows en anglais)
    5. Tu cliques sur Ok.
    Il y a toujours au moins deux solutions à un problème.

    http://software-design-development.blogspot.com/

  8. #8
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 20
    Points : 23
    Points
    23
    Par défaut
    pas du tout je l'ai testé en personne et voici le code de test :

    1- ajoute : using System.Collections.Generic;

    2-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    foreach (DateTime var in TestProgramming.getyear(2008))
                {
                    System.Console.WriteLine(var.ToShortDateString());
                }
    Citation Envoyé par piotrr Voir le message
    Ok mais ta fonction ne me donne que les jours du mois de janvier ...

  9. #9
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    bratomchi, faudrait voir à faire plus simple au niveau des algo

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    private List<string> GetAllDays(int year)
    {
        DateTime date = new DateTime(year, 1, 1);
        int nbJours = (DateTime.IsLeapYear(date.Year)) ? 366 : 365;
        List<string> dates = new List<string>(nbJours);
        for (int i = 0; i < nbJours; i++)
        {
            dates.Add(date.AddDays(i).ToString("dd/MM/yyyy"));
        }
     
        return dates;
    }
    C'est tout de même plus simple
    Pas de questions techniques par MP

  10. #10
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par StormimOn Voir le message
    bratomchi, faudrait voir à faire plus simple au niveau des algo

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    private List<string> GetAllDays(int year)
    {
        DateTime date = new DateTime(year, 1, 1);
        int nbJours = (DateTime.IsLeapYear(date.Year)) ? 366 : 365;
        List<string> dates = new List<string>(nbJours);
        for (int i = 0; i < nbJours; i++)
        {
            dates.Add(date.AddDays(i).ToString("dd/MM/yyyy"));
        }
     
        return dates;
    }
    C'est tout de même plus simple
    Effectivement c'est plutôt comme ça que je le voyais...

  11. #11
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 20
    Points : 23
    Points
    23
    Par défaut
    Merci Tomlev

    Citation Envoyé par tomlev Voir le message
    Effectivement c'est plutôt comme ça que je le voyais...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajouter tous les jours d'une année dans une table?
    Par jacko842 dans le forum VB.NET
    Réponses: 4
    Dernier message: 27/04/2010, 16h36
  2. afficher tous les jours d'une année
    Par gagalive dans le forum SQL
    Réponses: 9
    Dernier message: 13/07/2009, 10h37
  3. Lister tous les jours d'une année
    Par Delphi-ne dans le forum Requêtes
    Réponses: 3
    Dernier message: 18/02/2007, 18h10
  4. Numéro Auto qui se réinitialise à 1 tous les jours!
    Par R0cKW|LDeR dans le forum Access
    Réponses: 11
    Dernier message: 02/02/2006, 22h05
  5. décrémenter un compteur tous les jours
    Par Art19 dans le forum Langage SQL
    Réponses: 11
    Dernier message: 05/08/2005, 11h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo