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

Delphi Discussion :

Changer la date système


Sujet :

Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 211
    Points : 55
    Points
    55
    Par défaut Changer la date système
    Bonjour

    Je voudrais incrémenter les minutes d'une valeur supérieure à 60.

    J'utilise ce code
    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
    16
    17
    18
    19
     
    var
     d:TSYSTEMTIME;
     jour,heure,annee,mois,minute,seconde,milliseconde:word;
     
    begin
     
     GetSystemTime(d);
     
           annee:=d.wYear;
           mois:=d.wMonth;
           jour:=d.wDay;
           heure:=d.wHour;
           minute:=d.wMinute;
           seconde:=d.wSecond;
           milliseconde:=d.wMilliseconds;
    { ici je voudrais incrimenter  les minutes exemple 100 }
     
    SetSystemTime(d);
    Mais comment faire si j'incrémente mes minutes de plus de 60 ?
    Heure va-t-il s'incrémenter aussi ou faut-il passer par une autre fonction ?

    Merci de votre aide

  2. #2
    Membre confirmé Avatar de blonde
    Femme Profil pro
    Développeur Delphi
    Inscrit en
    Septembre 2003
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Delphi

    Informations forums :
    Inscription : Septembre 2003
    Messages : 278
    Points : 477
    Points
    477
    Par défaut
    tu peux utiliser la fonction IncMinute de la librairie DateUtils.

    Il n'est pas nécessaire que la valeur soit inférieure à 60.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 211
    Points : 55
    Points
    55
    Par défaut
    Bonjour,
    Et merci.
    Mais incminute ne marche qu'avec un tdatetime, je me trompe peut-être mais avec TSYSTEMTIME je ne vois pas comment faire.
    Merci

  4. #4
    Membre confirmé Avatar de blonde
    Femme Profil pro
    Développeur Delphi
    Inscrit en
    Septembre 2003
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Delphi

    Informations forums :
    Inscription : Septembre 2003
    Messages : 278
    Points : 477
    Points
    477
    Par défaut
    Ah oui, j'avais lu en diagonale.

    En utilisant cette routine pour convertir en DateTime :
    System.SysUtils.SystemTimeToDateTime

    puis incrémenter et revenir en date système ensuite ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 211
    Points : 55
    Points
    55
    Par défaut
    Bonjour

    Je ne sais pas si c'est la bonne méthode mais ça marche :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
     timedebut:=time; {heure avant lancement}
         lance ; {lancement de application}
         timefin:=time; {heure apres lancement}
     
         dif_minute:=minutesbetween(timefin,timedebut); {difference de temps}
         label8.caption:=('Minutes de diffrence : '+ FloatToStr(dif_minute));
     
           d.wYear:=annee;
           d.wMonth:=mois;
           d.wDay:=jour;
           d.wHour:=heure;
           d.wMinute:=minute;
           d.wSecond:=seconde;
           d.wMilliseconds:=milliseconde;
     
     
     
     
           if dif_minute>=60 then  begin
     
     
             d.wMinute:=dif_minute mod 60;
             nbh:=  dif_minute div 60 ;
              if nbh >1 then begin
     
               d.wHour:=d.wHour+nbh;
               if d.wHour=24 then d.wHour:=0;
     
              end;
           end
     
           else
           d.wMinute:=d.wMinute+dif_minute;
     
         SetSystemTime(d);

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 211
    Points : 55
    Points
    55
    Par défaut
    bonjour
    en mettant ce message j'ai vu que j'ai encore fait une erreur
    j'aurai du vérifier si d.wMinute+dif_minute >60 au lieu de dif_minute

    v aller corriger

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 211
    Points : 55
    Points
    55
    Par défaut
    Bonsoir

    Bon j'ai trouvé la fonction qui va bien sur le site :
    https://delphi.developpez.com/faq/?p...-l-heure-du-PC

    datedepart tdatetime
    datedepart:=now;

    J'ajoute mon incrément de temps minutes que j'ai trouvé avant et après lancement programme interne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    datedepart:=incminute(datedepart,incremen);
    et j'appelle la fonction Function MiseHeure(DateHeure:TDateTime):Boolean; qui se trouve sur le lien ci dessus.

    Donc résolu pour moi.

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

Discussions similaires

  1. Simuler une ancienne date js sans changer la date système de l'ordinteur
    Par clavier12AZQSWX dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/01/2022, 09h16
  2. Comment changer la date système sans changer l'heure?
    Par pointer dans le forum Langage
    Réponses: 7
    Dernier message: 18/05/2010, 09h55
  3. changer la date système
    Par modafine dans le forum Windows
    Réponses: 4
    Dernier message: 17/09/2009, 15h04
  4. [CF][VB.Net] Comment changer la date système du PDA ?
    Par zitoun dans le forum Windows Mobile
    Réponses: 1
    Dernier message: 07/03/2006, 16h26
  5. changer la date système
    Par dev-man dans le forum Windows XP
    Réponses: 2
    Dernier message: 05/01/2006, 14h09

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