Zwei Zeitstempel vergleichen

Gast #514301
Lesenswert?

Hallo,

ich suche eine elegante ;-) Lösung, zwei Zeitstempel mit einander zu 
vergleichen. (Programmiersprache Bascom Basic) Im Moment habe ich das 
durch geschachtelte Verzweigungen gelöst.
Ich fange mit dem Jahr an, dann Monat...Tag...usw.
Der Hintergrund ist, zu überprüfen ob ein Zeitstempel grösser, oder 
kleiner als der andere ist.
D.h ich habe einen Zeitstempel. 10:15 03.03.07(stunde:minute 
tag.monat.jahr)

der zweite Stempel sieht z.B folgendermaßen aus: 11:20 03.03.07

In diesem Fall, sollte ich als Ergebnis erhalten, dass der 2.Stempel 
größer ist.....

Hat jemand ne gute Idee?


Gruß
Gast #514308
Lesenswert?

Hallo,

du meinst sicherlich die Unixtime!?

Nein leider erhalte ich sie nicht in diesem Format.
Sie stehen mir im "Klartext" zur Verfügung, also so wie ich es im ersten 
Posting geschrieben habe.

Gruß
Gast #514927
Lesenswert?

Du hast nicht geschrieben, ob Du Basic oder C verwendest?

Für C gibt es "seit langem" eine sehr Elegante Lösung in time.h.
(Etwas ähnliches - ich habe es für meine Zwecke ein bisschen verkürzt.)

Karoly
-----------------------------------------------------------------------
struct tm
{
  int tm_year;                            /* Year since 1900          */
  unsigned char tm_mon;                   /* Month.       [0-11]      */
  unsigned char tm_mday;                  /* Day.         [1-31]      */
  unsigned char tm_hour;                  /* Hours.       [0-23]      */
  unsigned char tm_min;                   /* Minutes.     [0-59]      */
  unsigned char tm_sec;                   /* Seconds.     [0-60]      */
};

typedef unsigned long time_t;

#define between(a, c, z)        \
  ((unsigned)((c) - (a)) <= (unsigned)((z) - (a)))

#define LEAP_YEAR(year) ((year%4)==0)

char monthDays[]={31,28,31,30,31,30,31,31,30,31,30,31};

// convert broken time to calendar time (seconds since 1970)
time_t mktime(struct tm *timeptr) {
    int year=timeptr->tm_year+1900, month=timeptr->tm_mon, i;
    long seconds;

    // seconds from 1970 till 1 jan 00:00:00 this year
    seconds= (year-1970)*60L*60*24*365;

    // add extra days for leap years
    for (i=1970; i<year; i++) {
        if (LEAP_YEAR(i)) {
            seconds+= 60L*60*24;
        }
    }

    // add days for this year
    for (i=0; i<month; i++) {
      if (i==1 && LEAP_YEAR(year)) {
        seconds+= 60L*60*24*29;
      } else {
        seconds+= 60L*60*24*monthDays[i];
      }
    }

    seconds+= (timeptr->tm_mday-1)*60L*60*24L;
    seconds+= timeptr->tm_hour*60L*60;
    seconds+= timeptr->tm_min*60L;
    seconds+= timeptr->tm_sec;
    return seconds;
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren