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

  FORUM HardWare.fr
  Programmation
  C++

  [C++] Affichage uptime - Améliorations possibles ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] Affichage uptime - Améliorations possibles ?

n°2542632
spark
Luc ?
Posté le 22-09-2026 à 06:10:10  profilanswer
 

Bonjour,
 
Pour faire suite à mon problème de reboot aléatoire de mon PC, je me suis dis qu'une commande uptime serait quand même bien pratique :o, parce que "systeminfo" en ligne de commande c'est pas pratique, faut scroller en haut de la fenêtre à chaque fois pour avoir l'heure de démarrage du système...
 
J'ai donc fais le programme suivant :
 

Code :
  1. #include "windows.h"
  2. #include <iostream>
  3. #include <chrono>
  4. #include <format>
  5. int main()
  6. {
  7.     // 0. Définir la page de code de la console en UTF-8 (65001)
  8.     SetConsoleOutputCP(65001);
  9.     SetConsoleCP(65001);
  10.     // 1. Récupération du nombre de millisecondes écoulées depuis le démarrage du système
  11.     auto uptime = std::chrono::milliseconds(GetTickCount64());
  12.     // 2. Calcul de la date de démarrage du système
  13.     auto boot_time = std::chrono::system_clock::now() - uptime;
  14.     // 2.1 Suppression des microsecondes
  15.     auto boot_time_no_s = std::chrono::floor<std::chrono::seconds>(boot_time);
  16.     // 3. Affichage de la date et l'heure de démarrage du système
  17.     std::cout << "Heure de démarrage du système:\t" << std::format("{:%Y-%m-%d %H:%M:%S}", std::chrono::current_zone()->to_local(boot_time_no_s)) << std::endl;
  18.     // 4. Calcul de l'uptime en jour, heures, minutes, secondes
  19.     auto uptime_secondes = uptime.count() / 1000;
  20.     auto up_days  = uptime_secondes / 86400;
  21.     auto up_hours = uptime_secondes % 86400 / 3600;
  22.     auto up_min   = uptime_secondes % 86400 % 3600 / 60;
  23.     auto up_sec   = uptime_secondes % 86400 % 3600 % 60;
  24.     // 5. Affichage
  25.     switch (up_days)
  26.     {
  27.     case 0:
  28.         std::cout << "Uptime :\t\t\t" << up_hours << " heures, " << up_min << " minutes, " << up_sec << " secondes" << std::endl;
  29.         break;
  30.     case 1:
  31.         std::cout << "Uptime :\t\t\t" << up_days << " jour, " << up_hours << " heures, " << up_min << " minutes, " << up_sec << " secondes" << std::endl;
  32.         break;
  33.     default:
  34.         std::cout << "Uptime :\t\t\t" << up_days << " jours, " << up_hours << " heures, " << up_min << " minutes, " << up_sec << " secondes" << std::endl;
  35.         break;
  36.     }
  37. }


 
Sortie :


C:\Users\Spark>uptime
Heure de démarrage du système:  2026-09-20 23:15:49
Uptime :                        1 jour, 6 heures, 48 minutes, 31 secondes
 
C:\Users\Spark>


 
Ca marche, ca fait exactement ce que je voulais  :sol:  
 
Ca fait des siècles que je n'ai pas développé, et encore moins en C++ moderne, je n'y connais rien à la librairie standard.
 
Est-ce qu'il y a un moyen de passer outre les deux lignes SetConsoleOutputCP/SetConsoleCP ? Le fichier source est en UTF-8
Est-ce qu'il y a pas moyen de se passer des calculs d'apothicaires pour calculer le nombre de jours/heures/minutes/secondes de l'uptime avec des objets C++ ?
 
Je ne veux pas utiliser d'IA, je veux comprendre et surtout apprendre ce que je fais.


---------------
Un cycle complet sera une série de 100.
mood
Publicité
Posté le 22-09-2026 à 06:10:10  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C++] Affichage uptime - Améliorations possibles ?

 

Sujets relatifs
[C++] Problème avec une lib ArduinoL'algèbre de Bool écarte tous les possibles d'une simple négation
dll en C compatible vb6Batch modifier profil de couleur du parametre d'affichage
technos cloud, rust.. Quid d'apprendre le C aujourd'hui?[PowerShell] Aide syntaxe PS et affichage de résultats byte/texte
C# création de XMLDev C++ ComboBox API Windows
"appli" Java/C pour Android 4 / API level 16 (abandonné)Affichage du z-buffer
Plus de sujets relatifs à : [C++] Affichage uptime - Améliorations possibles ?


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)