struct tm -> Minuten und Sekunden in zwei Ziffern



  • Guten Abend C Freunde,

    ich bräuchte mal eure Hilfe, bei der

    struct tm
    

    .
    Genauer gesagt möchte ich mir aus der struct tm die aktuelle
    Uhrzeit und das aktuelle Datum auslesen, soweit so gut, anschließend möchte ich jenes in eine Datei schreiben (.txt). Das klappt auch soweit, nur das bei den Minuten und den Sekunden die '0' weggelassen wird, leuchet mir nicht ganz
    ein 😕 . Hier mal der Code:

    #include <time.h>
    
    int Jahr=timeInfo->tm_year + 1900;
    int Monat=timeInfo->tm_mon + 1;
    int Tag=timeInfo->tm_mday;
    int Stunden=timeInfo->tm_hour;
    int Minuten=timeInfo->tm_min;
    int Sekunden=timeInfo->tm_sec;
    
    FILE *time_log; 
    
        time_log = fopen("C:\\Log_my_time\\Time.txt", "a");
    
        if(time_log==NULL)
                          {
                          printf("\n\nFehler beim \x99 \bffnen der Log Datei!\n\n");
                          }
    
           fprintf(time_log, "%d.%d.%d  um %d:%d:%d\n", Tag, Monat, Jahr, Stunden, Minuten, Sekunden);   
    
    		 fclose(time_log);
    

    Hier ein Beispiel, wie es in der Datei aussieht:

    11.3.2014 um 18:1:6

    Wie bekomme ich das hin das die Minuten und die Sekunden in 2 Ziffern angezeigt werden, also "inklusive 0"?
    Sonst weiß man ja nicht ob es jetzt 18:10 Uhr oder 18:01 Uhr war. Kann man das irgendwie erzwingen?

    Danke schonmal



  • So macht er eine 2 stellige Zahl mit führender 0.

    fprintf(time_log, "%d.%d.%d  um %02d:%02d:%02d\n", Tag, Monat, Jahr, Stunden, Minuten, Sekunden);
    


  • Für die formatiert Zeitangabe gibt es extra strftime



  • Danke für die Hilfe, mit

    fprintf(time_log, "%d.%d.%d  um %02d:%02d:%02d\n", Tag, Monat, Jahr, Stunden, Minuten, Sekunden);
    

    klappt das schon ganz gut, strftime gucke ich mir auch mal an und probier es aus.

    Danke nochmals 😉


Log in to reply