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

Scripts/Batch Discussion :

Convertir les jours en date ( jour/mois/année ) [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2015
    Messages : 126
    Par défaut Convertir les jours en date ( jour/mois/année )
    Bonjour les développeurs

    Ce script calcule la différence entre 2 dates. Il affiche le résultat en jours ( days) et en heure ( HH:MM:SS ).

    Je voudrais savoir comment convertir les jours en date ( DD/MM/YYYY ).

    Voici un exemple:

    Enter two timestamps in "DD/MM/YYYY HH:MM:SS" format

    Enter start timestamp: 08/04/2004 10:12:23

    Enter end timestamp: 31/08/2021 07:18:47

    Duration: 6353 days and 21:06:24

    Appuyez sur une touche pour continuer...

    Voici le script:

    Code Batch : 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
     
    @echo off
    setlocal EnableDelayedExpansion
     
    rem Get elapsed days/time between two timestamps in "DD/MM/YYYY HH:MM:SS" format
    rem Antonio Perez Ayala aka Aacini
     
    rem Define the "Date in DDMMYYYY format" To "Julian Day Number" conversion "function"
    set "DateToJDN(Date)=( a=1Date, y=a%%10000, a/=10000, m=a%%100, d=a/100-100, a=(m-14)/12, (1461*(y+4800+a))/4+(367*(m-2-12*a))/12-(3*((y+4900+a)/100))/4+d-32075 )"
     
    echo Enter two timestamps in "DD/MM/YYYY HH:MM:SS" format
    echo.
    set /P "stamp1=Enter start timestamp:   "
    echo.
    set /P "stamp2=Enter  end  timestamp:   "
     
    for /F "tokens=1-4" %%a in ("%stamp1% %stamp2%") do set "date1=%%a" & set "time1=%%b" & set "date2=%%c" & set "time2=%%d"
     
    set /A "days=!DateToJDN(Date):Date=%date2:/=%! - !DateToJDN(Date):Date=%date1:/=%!"
    set /A "ss=(((1%time2::=-100)*60+1%-100) - (((1%time1::=-100)*60+1%-100)"
    if %ss% lss 0 set /A "ss+=60*60*24, days-=1"
    set /A "hh=ss/3600+100, ss%%=3600, mm=ss/60+100, ss=ss%%60+100"
     
    echo/
    echo Duration: %days% days and %hh:~1%:%mm:~1%:%ss:~1%
    echo.
    pause

    Merci de bien vouloir m'aider.

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Bonjour,

    Je voudrais savoir comment convertir les jours en date ( DD/MM/YYYY )
    Je ne comprends pas ce que tu souhaites

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2015
    Messages : 126
    Par défaut
    Bonjour ericlm128

    Merci d'avoir lu mon message.

    Je reprends le même exemple:

    Enter two timestamps in "DD/MM/YYYY HH:MM:SS" format

    Enter start timestamp: 08/04/2004 10:12:23

    Enter end timestamp: 31/08/2021 07:18:47

    Duration: 6353 days and 21:06:24

    Appuyez sur une touche pour continuer...
    Le script affiche le nombre de jours entre les deux dates données

    Duration: 6353 days
    Est-il possible de convertir les 6353 jours en nombre d'années, de mois et de jours écoulés pour les afficher au format DD/MM/YYYY ?

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Et bien tu peux toujours faire le calcul mais je suis contre l'affichage au format J/M/A puisque ce n'est pas une date mais une durée


    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    set /a "full=6353"
     
    set /a "Y=%full%/365"
    set /a "reste=%full%%%365"
    set /a "M=%reste%/30"
    set /a "J=%reste%%%30"
     
    echo %J%/%M%/%Y%
     
    pause

  5. #5
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2015
    Messages : 126
    Par défaut
    Merci infiniment ericlm128.

    Maintenant je peux connaître le nombre d'années, de mois et de jours écoulés (qui est également une durée dans le temps) entre les deux dates.

    Ne dit-on pas combien a duré le règne de Louis XIV, la grippe espagnole, la guerre de Troie... ?

    Bonne journée, bonne santé et a+ peut-être.

  6. #6
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2015
    Messages : 126
    Par défaut
    Je suis en phase de tests et j'ai remarqué qu'il y a une erreur au niveau des jours si on tient compte des années bissextiles.

    Peut-on remédier à cela ?

    Merci.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 04/11/2013, 17h11
  2. Trier les données par date au format jour mois année...
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/08/2007, 11h41
  3. Réponses: 5
    Dernier message: 20/02/2007, 17h52
  4. Réponses: 3
    Dernier message: 27/01/2006, 12h36
  5. [Dates] Jour Mois anné, heure minute et seconde...
    Par SangKou dans le forum Langage
    Réponses: 4
    Dernier message: 29/11/2005, 08h34

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