Aktuelle Uhrzeit?



  • Perner schrieb:

    Wie kann man die aktuelle Uhrzeit rausfinden? Ich habs schon mit time() versucht, allerdings bekomme ich da eine riesen Zahl raus, mit der ich nix anfangen kann. Ich dachte erst es wären Milisekunden, aber es scheint irgendwas anderes zu sein.

    time liefert dir UTC zurück. Anzahl der verstrichenen Sekunden seit dem
    01.Januar 1970. Ab VC7 hat Microsoft das - schlau wie sie sind - auf
    den 01.Januar 1901 umgemapped. Macht keinen Sinn. Zerstört aber die
    Portierbarkeit älterer Programme.



  • nemeses schrieb:

    Ab VC7 hat Microsoft das - schlau wie sie sind - auf den 01.Januar 1901 umgemapped.

    Wo hast Du denn diesen Unsinn her???



  • Wie auch immer, GetLocalTime funzt super, danke. 🙂



  • #include <ctime>
    #include <cstdio>
    #include <cstring>
    #include <iostream>
    using namespace std;
    
    int main()
    {
      time_t long_time;
      time( &long_time );                
      struct tm *pt = localtime( &long_time );
    
      int year	    = pt->tm_year + 1900;
      int month	    = pt->tm_mon  +    1;
      int day	    = pt->tm_mday;
      int weekday       = pt->tm_wday;
      int hour	    = pt->tm_hour;
      int minute        = pt->tm_min;
      int sec	    = pt->tm_sec; 
    
      char szmonth[4];
      char szwday[11];
      char szDatum[30];
      char szUhrzeit[20];
    
      switch( month )
      {
        case 1:  strcpy( szmonth,"JAN" ); break;
        case 2:  strcpy( szmonth,"FEB" ); break;
        case 3:  strcpy( szmonth,"MAR" ); break;
        case 4:  strcpy( szmonth,"APR" ); break;
        case 5:  strcpy( szmonth,"MAI" ); break;
        case 6:  strcpy( szmonth,"JUN" ); break;
        case 7:  strcpy( szmonth,"JUL" ); break;
        case 8:  strcpy( szmonth,"AUG" ); break;
        case 9:  strcpy( szmonth,"SEP" ); break;
        case 10: strcpy( szmonth,"OKT" ); break;
        case 11: strcpy( szmonth,"NOV" ); break;
        case 12: strcpy( szmonth,"DEZ" ); break;
      }
    
      switch( weekday )
      {
        case 0:  strcpy( szwday,"Sonntag" );    break;  
        case 1:  strcpy( szwday,"Montag" );     break;
        case 2:  strcpy( szwday,"Dienstag" );   break;
        case 3:  strcpy( szwday,"Mittwoch" );   break;
        case 4:  strcpy( szwday,"Donnerstag" ); break;
        case 5:  strcpy( szwday,"Freitag" );    break;
        case 6:  strcpy( szwday,"Samstag" );    break;
      }
    
      sprintf( szDatum,   "Datum:   %s, %d. %s %d",  szwday, day, szmonth, year );
      sprintf( szUhrzeit, "Uhrzeit: %02d:%02d:%02d", hour, minute, sec );
    
      cout << szDatum << "\n" << szUhrzeit << endl;
    
      return 0;
    }
    


  • Warum so kompliziert? Der Code ist auch sehr unprotablen (im Sinne von "deutsch"; ganz zu schweigen davon, dass er nur bis ins Jahr 20038 funktioniert)...
    Ich würde dringend Raten die folgenden Funktionen zu verwenden:
    GetDateFormat:
    http://msdn.microsoft.com/library/en-us/intl/nls_5w6s.asp

    GetTimeFormat:
    http://msdn.microsoft.com/library/en-us/intl/nls_6at0.asp



  • *mal die funktion strftime() aus der libc einschmeisst*



  • *mal die funktion strftime() aus der libc einschmeisst*



  • time(), strftime()



  • nemeses schrieb:

    Ab VC7 hat Microsoft das - schlau wie sie sind - auf
    den 01.Januar 1901 umgemapped. Macht keinen Sinn.

    LOL das was du sagst macht keinen Sinn weil es absoluter Schwachsinn und völlig unqualifiziertes MS Gebashe ist LOL



  • LOL das was du sagst macht keinen Sinn weil es absoluter Schwachsinn und völlig unqualifiziertes MS Gebashe ist LOL

    Oh Man, are'st dou coooool. Da Slang is soo fat. Dou bis a richtig krassa Gangsta!!!


Anmelden zum Antworten