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 :

La gestion du temps + 30 j


Sujet :

C

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 8
    Par défaut La gestion du temps + 30 j
    Bonjour,

    Suite à un code qui permet de récuperer la date et l'heure de création d'un fichier. Je souhaite voir si le fichier date de plus de 30 jours.

    J'ai fait quelques test, mais je vois pas comment faire.

    Voici le 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
      BOOL myGetFileTime(const char * NameFile, LPTSTR lpszCreate,LPTSTR lpszAccess,LPTSTR lpszWrite){ 
        FILETIME ftCreate, ftAccess, ftWrite; 
        SYSTEMTIME stUTC, stCreateLocal,stAccessLocal,stWriteLocal; 
     
      //opuverture du handle de fichier si existe 
        HANDLE hFile = CreateFile(NameFile,0,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL, 
                                   OPEN_EXISTING,0,NULL); 
        if (hFile != INVALID_HANDLE_VALUE){ 
        //Recupere les temps du fichier 
          if (!GetFileTime(hFile, &ftCreate, &ftAccess, &ftWrite)) 
             return FALSE; 
           else 
             CloseHandle(hFile); 
          //end if 
         }else 
            return FALSE; 
        //end if 
     
      //Converti le temp de creation en temp local 
        FileTimeToSystemTime(&ftCreate, &stUTC); 
        SystemTimeToTzSpecificLocalTime(NULL, &stUTC, &stCreateLocal); 
     
      //Converti le temp dern.acce en temp local. 
        FileTimeToSystemTime(&ftAccess, &stUTC); 
        SystemTimeToTzSpecificLocalTime(NULL, &stUTC, &stAccessLocal); 
     
      //Converti le temp dern.modif en temp local. 
        FileTimeToSystemTime(&ftWrite, &stUTC); 
        SystemTimeToTzSpecificLocalTime(NULL, &stUTC, &stWriteLocal); 
     
     
      //Construit les chaines pour montrer la date et le temp. 
        wsprintf(lpszCreate, TEXT("%02d/%02d/%d %02d:%02d"), 
                 stCreateLocal.wMonth, stCreateLocal.wDay, stCreateLocal.wYear, 
                 stCreateLocal.wHour, stCreateLocal.wMinute); 
     
        wsprintf(lpszAccess, TEXT("%02d/%02d/%d %02d:%02d"), 
                 stAccessLocal.wMonth, stAccessLocal.wDay, stAccessLocal.wYear, 
                 stAccessLocal.wHour, stAccessLocal.wMinute); 
     
        wsprintf(lpszWrite, TEXT("%02d/%02d/%d %02d:%02d"), 
                 stWriteLocal.wMonth, stWriteLocal.wDay, stWriteLocal.wYear, 
                 stWriteLocal.wHour, stWriteLocal.wMinute); 
     
        return TRUE; 
      }//end process

  2. #2
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par J0hns
    Suite à un code qui permet de récuperer la date et l'heure de création d'un fichier. Je souhaite voir si le fichier date de plus de 30 jours.
    Tu utilises des fonctions bizarres pas du tout portables... A part pour récupérer la date du fichier (rien de standard, mais essayons POSIX, c'est plus 'civilisé' : stat() ou fstat()...), je conseille l'usage des fonctions standards qui font exactement ce qu'il faut.
    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
    37
    38
    39
    40
    41
    42
     
    #include <stdio.h>
    #include <time.h>
     
    #include <sys/types.h>
    #include <sys/stat.h>
     
    int main()
    {
       struct stat stats =
          {
             0
          };
     
       if (stat ("/autoexec.bat", &stats) == 0)
       {
          time_t last_change = stats.st_ctime;
     
          struct tm tm_last_change = *localtime (&last_change);
     
          /* ajouter 30 jours */
          tm_last_change.tm_mday += 30;
     
          {
             /* rectifier */
             time_t last_change_plus_30 = mktime (&tm_last_change);
             {
                time_t now = time(NULL);
                if (difftime (now, last_change_plus_30) > 0)
                {
                   printf("paye toi une licence...\n");
                }
             }
          }
       }
       else
       {
          perror("stat");
       }
     
       return 0;
    }

  3. #3
    Membre habitué
    Inscrit en
    Octobre 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 8
    Par défaut Merci
    Merci. C'est ce que je voulais.

    Trop rapide la réponse

Discussions similaires

  1. FB/IB gestion du temps
    Par lio33 dans le forum Débuter
    Réponses: 4
    Dernier message: 04/10/2005, 10h55
  2. [MFC] Gestion du temps
    Par Kevgeii dans le forum MFC
    Réponses: 7
    Dernier message: 02/07/2005, 14h21
  3. Aide pour l'analyse d'un problème de gestion de temps
    Par PAINCO dans le forum Décisions SGBD
    Réponses: 8
    Dernier message: 03/06/2005, 15h49
  4. [VB.NET] Gestion en temps réel d'une bdd access
    Par qwiskas dans le forum Windows Forms
    Réponses: 6
    Dernier message: 12/02/2005, 19h37
  5. fonction de gestion du temps
    Par fati dans le forum C
    Réponses: 5
    Dernier message: 26/12/2002, 16h32

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