Résolu Ajouter 30 minutes a une variable en BAT

leverrid

Nouveau membre
Bonjour,

Alors voilà je cherche a ajouter 30 minutes a une variable mais je ne sais pas comment le faire..

Je précise un peut tous ça ^^
Pour le moment j'en suis rendu a ça :

Code:
set heure=%temp%

c'est maintenant que je veux ajouter 30 minutes a ma variable heure, comment je peut faire ça ?

Merci d'avance :)
 

Shibanubis

Nouveau membre
Meilleure réponse
Bonjour!

Je ne sais pas si j'ai le droit au chapitre étant juste un humble promeneur, mais je peux déjà te dire que %temp% n'est pas la variable pour donner l'heure, mais à plutôt rapport avec le fichier temporaire.
La variable pour obtenir l'heure, c'est %time%. ^^

Ensuite je pense que le maître de ces lieux va venir te demander de mettre tout code entre les balises nécessaires. :)

J'ai pas d'énormes notions mais j'ai réussi à isoler les minutes de mon pc en cherchant un peu sur le net, avec l'aide de ce très bon tuto :

Je vais te laisser chercher quelles commandes utiliser mais je vais te donner la manière que j'ai utilisée, je dis pas que c'est la solution la plus simple mais au moins ça marche. :)

Pour isoler les minutes et ajouter 30 :
Récupérer l'heure et la mettre dans une variable (appelons la A)
Quand tu affiches A, l'heure s'affiche comme ça HH:MM:SS,mm (H:heure, M:minute,S:seconde,m:millisec)
Tu découpes les 3eme et 4eme chiffre de A (attention aux ":" )
Tu les mets dans une nouvelle variable (disons B) et tu as les minutes de l'heure qu'il est!
Ensuite tu ajoutes 30 à B qu'on va mettre dans la variable C
Tu as tes 30 minutes de plus !
Tout ça c'est bien joli mais si tu tombes sur des heures à un format aberrant comme 16:80:13,54 , ça va pas t'avancer :)

Pour vérifier les formats d'heure
SI C est supérieure ou égale 60, tu ajoutes une heure (que tu peux mettre dans D) à l'heure qu'il est et
soustrais 60 à C
Si le chiffre des minutes (C) est plus petit que 10, ajouter un 0 à la valeur de C (pour pas avoir de minutes à un chiffre)
Si D est supérieure ou égale à 24, D = 00

un petit truc Attention dans tes comparaison ! Pense bien à utiliser les %___% quand tu veux comparer les valeurs de variables entres elles.

Et maintenant tu as ton heure+30 (D), tes minutes+30 (C), avec ça tu peux récupérer l'heure + 30 minutes =)

voilà le résultat final :
Vous devez être connecté pour voir les images.
 

zeb

Modérateur
Plop,

Je ne sais pas si j'ai le droit au chapitre étant juste un humble promeneur
Tout le monde peut se permettre de réagir à tous les messages. Surtout quand on se permet de faire des messages de cette qualité !

Cela dit, voilà qui est bien compliqué !
Et si on est plus grand que 60, et si plus grand que 24.... Ohlala !

Autre proposition (utilisable avec tous les langages, pas seulement le DOS)
Mettre l'heure, la date en seconde. Ajouter 30min soit 1800 secondes, et réafficher :

Code:
SET T=%TIME%
SET /a H=%T:~0,2%*3600         >NUL
SET /a M=%T:~3,2%*60           >NUL
SET /a X=%H%+%M%+%S%+1800      >NUL
SET /a H=(%X%/3600)%24         >NUL
SET /a M=(%X%-%H%*3600)/60     >NUL
ECHO Il est %T:~0,5%. Dans une demi-heure, il sera exactement %H%:%M%.
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 126
Messages
6 717 808
Membres
1 586 365
Dernier membre
matiOs1
Partager cette page
Haut