brauche hilfe mit time.h (Anfänger)

swerflash

Mitglied
Hallo,

ich bin ein Anfänger und ich möchte mir ein Programm programmieren, mit dem ich aktuellen Tag, Datum und Uhrzeit ermitteln kann(in der Konsole). Ich habe herausgefunden, dass ich das mit time.h machen kann, nur habe ich das nicht hingekriegt.
Es soll folgendes rauskommen:

Heute ist Sonntag der 12.03.2006
Es ist jetzt 15:25 Uhr

Ich habe so angefangen:

#include <stdio.h>
#include <time.h>


struct tm T;

void main(void)
{
...

und weiter weiss ich nicht wie ich schreiben soll
printf("Heute ist ......


könnte mir bitte jemand so ein Programm schreiben wie ich oben beschrieben habe?

Danke im Voraus
 
Da gibt es viele Möglichkeiten. Eine davon wäre folgende:
Code:
#include <stdio.h>
#include <time.h>
#include <locale.h>

int main()
{
        time_t zeit;
        char strzeit[256];
        struct tm *zeitinfo;

        /* damit die Datumsausgabe deutsch ist (Systemeinstellung) */
        setlocale(LC_ALL, "");
        /* aktuelle Kalenderzeit abrufen und speichern */
        time(&zeit);
        /* als lokale Zeit in Elemente der Struktur zerlegen */
        zeitinfo = localtime(&zeit);
        /* Zeichenkette generieren */
        strftime(strzeit, 255, "%c", zeitinfo);

        printf("Heute ist %s\n", strzeit);

        return 0;
}
Man kann die Ausgabe, wie nach strzeit mithilfe von strftime() geschrieben werden soll noch variieren, es existieren zahlreiche Möglichkeiten, verschiedene Werte auszulesen, zum Beispiel %a für den abgekürzten Wochentag, %A für den ausgeschriebenen Wochentag, ...
%c setzt gleich alle Werte ein. Du könntest also alternativ auch folgende Zeile einsetzen:
strftime(strzeit, 255, "%A der %d.%m.%Y", zeitinfo);

Du kannst die Werte der Struktur tm auch direkt ansprechen. Unter der glibc definieren sich unter anderem folgende Werte:
Code:
struct tm
{
  int tm_sec;                   /* Seconds.     [0-60] (1 leap second) */
  int tm_min;                   /* Minutes.     [0-59] */
  int tm_hour;                  /* Hours.       [0-23] */
  int tm_mday;                  /* Day.         [1-31] */
  int tm_mon;                   /* Month.       [0-11] */
  int tm_year;                  /* Year - 1900.  */
  int tm_wday;                  /* Day of week. [0-6] */
  int tm_yday;                  /* Days in year.[0-365] */
  int tm_isdst;                 /* DST.         [-1/0/1]*/

#ifdef  __USE_BSD
  long int tm_gmtoff;           /* Seconds east of UTC.  */
  __const char *tm_zone;        /* Timezone abbreviation.  */
#else
  long int __tm_gmtoff;         /* Seconds east of UTC.  */
  __const char *__tm_zone;      /* Timezone abbreviation.  */
#endif
};

Ich würde Dir als Anfänger auch noch empfehlen, sich über die Möglichkeiten der Standardbibliothek schlau zu machen und dazu vielleicht ein Buch zu kaufen. Ich kann hier beispielsweise das handliche Buch »C -- Bibliotheksfunktionen sicher anwenden« von Helmut Erlenkötter empfehlen. Daraus habe ich auch gerade meine Informationen bezogen.
 
brauche auch hilfe mit time.h (Anfänger)

Hallo
kann mir jemand sagen wie ich einer Variablen den wert von tm_wday zuweisen

Danke schon mal im vorraus.
 
Zurück