Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1536 connectés 

  FORUM HardWare.fr
  Programmation
  API Win32

  [Résolu] Manipulation de dates par FILETIME et SYSTEMTIME

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Manipulation de dates par FILETIME et SYSTEMTIME

n°1793548
Deton@tor
Posté le 29-09-2008 à 20:31:19  profilanswer
 

Salut,
 
Voila mon problème :
 
J'ai une valeur en heures qui correspond à un seuil d'ancienneté des fichiers. Cette valeur peut varier de 1 à 255 heures.
Je veux parcourir un dossier avec des fichiers à archiver sur FTP => si les fichiers sont âgés d'au moins "mon_nbre_dheures", ils seront transférés.
 
Comment manipuler les dates des fichiers et les comparer à la date courante en prenant en compte mon seuil de 48h ?
 
Je voulais passer par un SYSTEMTIME converti en FILETIME mais comment prendre en compte mes fameux 48h ? Car un FILETIME est composé de 2 DWORD Low et High.
http://msdn.microsoft.com/en-us/li [...] S.85).aspx
 
Merci de votre aide :)


Message édité par Deton@tor le 29-09-2008 à 23:09:17

---------------
Mon matos | Mon Feedback
mood
Publicité
Posté le 29-09-2008 à 20:31:19  profilanswer
 

n°1793640
Deton@tor
Posté le 29-09-2008 à 23:07:29  profilanswer
 

Bon après un peu de réflexion et d'essais, j'ai trouvé la solution et je m'auto-réponds :D
Ça peut aussi servir à d'autres...
 

Code :
  1. void __fastcall TForm1::CalculerDateValidite(TObject *Sender)
  2. {
  3.      const unsigned __int64 i100NanoEnSecondes = 10000000; // Base de temps des FILETIME 100ns.
  4.      const unsigned __int64 i100NanoEnMinutes  = i100NanoToSecondes * 60;
  5.      const unsigned __int64 i100NanoEnHeures   = i100NanoToMinutes * 60;
  6.      const unsigned __int64 i100NanoEnJours    = i100NanoToHeures * 24;
  7.      SYSTEMTIME StCurrentTime, StSeuil;
  8.      unsigned __int64 FtSeuil;
  9.      int Heures = 48;
  10.      GetLocalTime(&StCurrentTime); // On récupère la date et heure locale en SYSTEMFILE
  11.      SystemTimeToFileTime(&StCurrentTime, (FILETIME*)&FtSeuil); // On convertit en FILETIME
  12.      FtSeuil = FtSeuil - Heures * i100NanoToHeures; // On envèle les 48h à la date courante pour avoir la date seuil de validité
  13.      FileTimeToSystemTime((FILETIME*)&FtSeuil, &StSeuil); // On repasse en SYSTEMFILE pour afficher sur l'IHM
  14.      //=> Affichage dans des Labels de la Date courante et la date seuil
  15.      cJ->Caption=StCurrentTime.wDay;
  16.      cM->Caption=StCurrentTime.wMonth;
  17.      cA->Caption=StCurrentTime.wYear;
  18.      cH->Caption=StCurrentTime.wHour;
  19.      fJ->Caption=StSeuil.wDay;
  20.      fM->Caption=StSeuil.wMonth;
  21.      fA->Caption=StSeuil.wYear;
  22.      fH->Caption=StSeuil.wHour;
  23. }


---------------
Mon matos | Mon Feedback

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  API Win32

  [Résolu] Manipulation de dates par FILETIME et SYSTEMTIME

 

Sujets relatifs
[Résolu]-[BATCH DOS] modification Mot De Passe dans l'Active Directory[Résolu]Petite question trés simple pour comparaison entre deux chaine
[Résolu] Problème avec une boucleParcourir un répertoire (Résolu)
[résolu]requete http en php, recuperer le code source d'une page web[Python] [Resolu]temps en abscisse pour un graph
class CSS != balise style 0o [auto-résolu]Mon Richtextbox ne s'actualise pas .(Edit::Résolu)
[CSS] Petit prob avec l'attribut font-size (Résolu)Menu html CSS (ul li) [resolu]
Plus de sujets relatifs à : [Résolu] Manipulation de dates par FILETIME et SYSTEMTIME


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR