Wie verwende ich difftime ( time.h) ???



  • Hallo,

    Kann mir einer ein Beispiel geben wie ich

    #include <time.h>
      double difftime( time_t time2, time_t time1 );
    

    mit dieser Funktion z.B. mein alter errechnen kann. ? oder bin ich hier falsch tun ?



  • Ja man könnte es hier uU auch posten - doch eigentlich ist es ANSI-C. Deswegen verschiebe ich es auch dorthin.

    MfG SideWinder



  • Beispiel:

    #include <time.h>
    
    ...
    
    struct tm gebdat;
    double sekunden;
    
    ...
    
    gebdat.tm_year=81; //Geburtsjahr (rechnet von 1900 weg)
    gebdat.tm_mon=8-1; //Monat - 1 (0 = Januar, 1 = Februar, ...)
    gebdat.tm_mday=11; //Tag
    gebdat.tm_hour=0;
    gebdat.tm_min=0;
    gebdat.tm_sec=1;
    
    sekunden=difftime(time(0), mktime(&gebdat));
    
    printf("Alter: %d Jahre", (int)(sekunden/(60*60*24*365.25)));
    
    ...
    

    Reicht dir das?

    PS: @Side
    Musst du es genau in dem Moment verschieben, wenn ich was reinschreibe??



  • Hallo AJ

    Leider hilft mir das wenig 😕
    bin noch am anfang,
    hab versucht das in ein programm reinzupacken und krieg 100.000 fehlermeldungen
    beim compilen 🤡

    wenn du zeit hast kannst du es bitte ausführlicher machen ?
    danke.



  • Komisch bei mir funktionierts einwandfrei.

    Ich hab noch die Includedatei oben eingebunden. Vielleicht hast du die ja vergessen 😕

    Was für Fehlermeldungen kommen denn?



  • Fehler ? diese hier: (inklusive warnungen)

    C:\Programme\Microsoft Visual Studio\Examples\test.cpp(7) : error C2143: syntax error : missing ';' before '.'
    C:\Programme\Microsoft Visual Studio\Examples\test.cpp(7) : error C2501: 'gebdat' : missing storage-class or type specifiers
    C:\Programme\Microsoft Visual Studio\Examples\test.cpp(7) : error C2371: 'gebdat' : redefinition; different basic types
            C:\Programme\Microsoft Visual Studio\Examples\test.cpp(4) : see declaration of 'gebdat'
    C:\Programme\Microsoft Visual Studio\Examples\test.cpp(7) : error C2143: syntax error : missing ';' before '.'
    C:\Programme\Microsoft Visual Studio\Examples\test.cpp(8) : error C2143: syntax error : missing ';' before '.'
    C:\Programme\Microsoft Visual Studio\Examples\test.cpp(8) : error C2501: 'gebdat' : missing storage-class or type specifiers
    C:\Programme\Microsoft Visual Studio\Examples\test.cpp(8) : error C2371: 'gebdat' : redefinition; different basic types
            C:\Programme\Microsoft Visual Studio\Examples\test.cpp(4) : see declaration of 'gebdat'
    C:\Programme\Microsoft Visual Studio\Examples\test.cpp(8) : error C2143: syntax error : missing ';' before '.'
    C:\Programme\Microsoft Visual Studio\Examples\test.cpp(9) : error C2143: syntax error : missing ';' before '.'
    C:\Programme\Microsoft Visual Studio\Examples\test.cpp(9) : error C2501: 'gebdat' : missing storage-class or type specifiers
    C:\Programme\Microsoft Visual Studio\Examples\test.cpp(9) : error C2371: 'gebdat' : redefinition; different basic types
            C:\Programme\Microsoft Visual Studio\Examples\test.cpp(4) : see declaration of 'gebdat'
    C:\Programme\Microsoft Visual Studio\Examples\test.cpp(9) : error C2143: syntax error : missing ';' before '.'
    C:\Programme\Microsoft Visual Studio\Examples\test.cpp(10) : error C2143: syntax error : missing ';' before '.'
    C:\Programme\Microsoft Visual Studio\Examples\test.cpp(10) : error C2501: 'gebdat' : missing storage-class or type specifiers
    C:\Programme\Microsoft Visual Studio\Examples\test.cpp(10) : error C2371: 'gebdat' : redefinition; different basic types
            C:\Programme\Microsoft Visual Studio\Examples\test.cpp(4) : see declaration of 'gebdat'
    C:\Programme\Microsoft Visual Studio\Examples\test.cpp(10) : error C2143: syntax error : missing ';' before '.'
    C:\Programme\Microsoft Visual Studio\Examples\test.cpp(11) : error C2143: syntax error : missing ';' before '.'
    C:\Programme\Microsoft Visual Studio\Examples\test.cpp(11) : error C2501: 'gebdat' : missing storage-class or type specifiers
    C:\Programme\Microsoft Visual Studio\Examples\test.cpp(11) : error C2371: 'gebdat' : redefinition; different basic types
            C:\Programme\Microsoft Visual Studio\Examples\test.cpp(4) : see declaration of 'gebdat'
    C:\Programme\Microsoft Visual Studio\Examples\test.cpp(11) : error C2143: syntax error : missing ';' before '.'
    C:\Programme\Microsoft Visual Studio\Examples\test.cpp(12) : error C2143: syntax error : missing ';' before '.'
    C:\Programme\Microsoft Visual Studio\Examples\test.cpp(12) : error C2501: 'gebdat' : missing storage-class or type specifiers
    C:\Programme\Microsoft Visual Studio\Examples\test.cpp(12) : error C2371: 'gebdat' : redefinition; different basic types
            C:\Programme\Microsoft Visual Studio\Examples\test.cpp(4) : see declaration of 'gebdat'
    C:\Programme\Microsoft Visual Studio\Examples\test.cpp(12) : error C2143: syntax error : missing ';' before '.'
    C:\Programme\Microsoft Visual Studio\Examples\test.cpp(14) : error C2501: 'sekunden' : missing storage-class or type specifiers
    C:\Programme\Microsoft Visual Studio\Examples\test.cpp(14) : error C2371: 'sekunden' : redefinition; different basic types
            C:\Programme\Microsoft Visual Studio\Examples\test.cpp(5) : see declaration of 'sekunden'
    C:\Programme\Microsoft Visual Studio\Examples\test.cpp(17) : error C2501: 'printf' : missing storage-class or type specifiers
    C:\Programme\Microsoft Visual Studio\Examples\test.cpp(17) : error C2078: too many initializers
    C:\Programme\Microsoft Visual Studio\Examples\test.cpp(17) : warning C4244: 'initializing' : conversion from 'double' to 'int', possible loss of data
    

    😃



  • Du hast gesagt du hast das in einen bestehenden Quellcode eingefügt. Poste mal den Quellcode (wenn es was größeres ist, bitte nur den Ausschnitt mit dem Geburtsdatum).



  • nein diese fehlermeldungen die du hier siehst kommen von deinem code alleine,
    vielleicht hast du nen besseren compiler als ich?

    Hab ein neues projekt angelegt (um es leicht und übersichtlich zu gestalten )
    und reinkopiert.
    Sicher verwendest du borland oder devc++ , da passieren solche sachen immer...



  • Also ich habs mit Borland Compiler 5.02 ausprobiert.
    Welchen hast du? Hast du auch sicher time.h includiert?



  • Jeffrey schrieb:

    Fehler ? diese hier: (inklusive warnungen)

    C:\Programme\Microsoft Visual Studio\Examples\test.cpp(17) : warning C4244: 'initializing' : conversion from 'double' to 'int', possible loss of data
    

    😃

    Welchen ich habe ???

    VC++ 6.0



  • Oje und die MFC-Klassen willst du nicht hernehmen, oder?



  • Jeffrey schrieb:

    Jeffrey schrieb:

    Fehler ? diese hier: (inklusive warnungen)

    C:\Programme\Microsoft Visual Studio\Examples\test.cpp(17) : warning C4244: 'initializing' : conversion from 'double' to 'int', possible loss of data
    

    😃

    Welchen ich habe ???

    VC++ 6.0

    was das wohl heisst ? Vielleicht schneidets dir ja deinen Gleitkommawert ab und tuts in ne Ganzzahl hihi 😉 😉



  • MFC verdummt nur...
    und braucht immer eine runtime .dll, da kann ich ja gleich in VB machen.



  • @jeff
    Also ich glaube es liegt an der Einstellung des Projekts. Welche Einstellung hast du da getroffen?



  • nein nein das sind die beiden versch. compiler, verwenden völlig unterschiedliche librarys und so.
    ich habs schon aufgegeben, aber danke für die mühe.



  • MFC verdummt nur... und braucht immer eine runtime .dll

    Na ja. MFC ist eine hilfreiche Kapselung der WinAPI, ähnlich wie wxWindows, und erweitert den Horizont und die Möglichkeiten. Ich sehe da keine Verdummung, eher eine Unterstützung. Leider ist MFC nicht portabel. Da kann man alternativ wxWindows nehmen.

    Das mit der DLL stimmt auch nicht, da man diese statisch packen kann (ab Prof-Vers.). 😉



  • Erhard Henkes schrieb:

    MFC verdummt nur... und braucht immer eine runtime .dll

    Na ja. MFC ist eine hilfreiche Kapselung der WinAPI, ähnlich wie wxWindows, und erweitert den Horizont und die Möglichkeiten. Ich sehe da keine Verdummung, eher eine Unterstützung. Leider ist MFC nicht portabel. Da kann man alternativ wxWindows nehmen.

    Das mit der DLL stimmt auch nicht, da man diese statisch packen kann (ab Prof-Vers.). 😉

    Was genau meinst du mit "portabel"? Wirst ja kaum meinen, dass man eine Libary die auf der WinAPI aufbaut auf andere Betriebssystem portieren will.

    MfG SideWinder



  • @Side
    Hast du schon mal versucht MFC in einem anderen Compiler herzunehmen? 😉 (Borland unterstützt soviel ich weiß MFC, aber bei den anderen Compilern siehts da denk ich mager aus.)


Anmelden zum Antworten