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

Langage Delphi Discussion :

Recuperer Numero semaine a partir d'une date


Sujet :

Langage Delphi

  1. #1
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Points : 337
    Points
    337
    Par défaut Recuperer Numero semaine a partir d'une date
    Bonsoir, j'ai encore un souci avec mes dates !

    Je voudrais soustraire deux dates... et récuperer ensuite le numero de la semaine concernée par cette date... A noter, que le numéro de semaine n'est pas celui du calendrier.

    Je m'éxplique, j'ai une date FIXE (cette date déterminera la semaine1) par exemple : 26/01/2009.

    Dans un DateTimePicker, j'aimerais selectionner une date par exemple : 10/02/2009, J'aimerais savoir combien de Jour il c'est écoulé entre ces deux dates...

    Considérons que la semaine du 26/01/2009 Soit la semaine 1, je voudrais retrouver la semaine pour une date selectionée...
    J'ai essayé ceci en suivant la methode de la FAQ
    http://delphi.developpez.com/faq/?pa...ndate#diffdate
    Mais ça ne fonctionne pas...
    Peut être que c'est au niveau de la convertion des jours en semaine (je divise le nombre de jour par 7... Voir le code ci dessous).

    Voici en gros, la façon dont j'ai procédé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Var NombreJour :Extended;
        DateDepart : TDate;
        SemaineConcerne : Real;
    begin
    FichierIni:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'FichierINI.ini');
    DateDepart:=FichierIni.ReadDate('Donnee','DateDepart',00/00/0000);
    NombreJour:=DateTimePicker1.Date-DateDepart;
    SemaineConcerne:=SimpleRoundTo((NombreJour / 7), 0);// Je divise le nombre de Jour par 7 (7 jour pas semaine...)
    FichierIni.Free;
    end;
    Voila, merci de votre aide !

  2. #2
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Points : 337
    Points
    337
    Par défaut
    Je viens d'avoir une idée toute simple...

    Récuperer le numéro de la semaine réel de ma date de départ,
    Soustraire le numéro de semaine de ma date choisie au numéro de semaine de la date de départ, et normalement sa roule.

    Je test sa et je met le code pour les futurs interesés !!

  3. #3
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Unité : Dateutils
    Fonction : DaysBetween

    Ca te permettra d'avoir le nombre de jours entier entre deux dates puis après il ne te reste plus qu'à faire ta division par 2.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Points : 576
    Points
    576
    Par défaut
    Bonjour,

    Les dates sont en faite des nombre flottant.

    La valeur 1 correspond à une journée. Donc 1/24 correspond à une heure, 1/24/60 à une minute etc.

    Si je fais Date2 - Date 1 j'ai donc le temps entre 2 dates en jour, heures, minute, seconde et milliseconde.

    Ceil(Date2 - Date1) donne le nombre de jour entièrement passé (si j'ai 2 jour et 2 heurs j'obtiens 2).


    floor(Date2 - Date1) donne le nombre de jour arrondi (si j'ai 2 jour et 2 heurs j'obtiens 3).

    Une semaine = 7 jours donc en faisant (ceil(Date2 - Date1) / 7) j'ai le nombre de semaine entre 2 dates. Cela marche même si les dates sonts dans des années différentes.

    Leproblème tient dans le faite que vous désirez peut être compter la semaine depuis un jour fixe (le dimanche ou le lundi). dans ce cas vous devrez fait attention a votre date initiale (Date1).

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

Discussions similaires

  1. recuperation jour semaine a partir d'une label javascript
    Par Cheorches dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 28/10/2013, 18h26
  2. [XL-2003] Jour de la semaine a partir d une date (retourne toujours samedi!)
    Par cecyl dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 21/07/2010, 05h15
  3. recherche fonction retournant numero du jour de la semaine à partir d'une date
    Par Cogito.11 dans le forum Développement de jobs
    Réponses: 5
    Dernier message: 22/06/2009, 11h10
  4. Réponses: 3
    Dernier message: 25/03/2007, 18h03
  5. [T-SQL]recuperer l'heure a partir d'une date
    Par agougeon dans le forum Sybase
    Réponses: 1
    Dernier message: 07/08/2006, 14h43

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