PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C: Rechnen mit der Softwareuhr



Stefan Feeser
17-09-2002, 12:57
Hallo zusammen,

gestern hat mir jemand auf meine Frage nach dem Auslesen der Systemzeit (Softwareuhr) geantwortet. Ich habe nun mit den beiden beschriebenen Varianten ein wenig rumgespielt und da noch eine Frage.

Wie kann ich den erzeugten String in eine Varible casten so dass ich nachher
z. B. mit dem Tag weiterrechnen kann. Ich denke mir das etwa wie folgt:

...
/* so wie ich das sehe wird hier die Systemzeit, die ja wahrscheinlich irgend
ein integer Wert ist umformatiert und in der Adresse der Variable buffer
abgelegt */

strftime(&buffer, 99, "%d", &zeit); /* brauche z. B. nur den Tag */

/* das nachfolgende funktioniert nicht - mach ich hier nen Denkfehler wenn
ich versuche den Inhalt von buffer einfach in eine Variable zu schreiben? Ich
verstehe auch nicht warum ich die obige Funktion nicht direkt einer Variable
zuweisen kann??? */

tag = printf("%2s", buffer);

Aber vielleicht mach ich ja auch grundlegend was falsch, bitte aber um Nachsicht
da ich doch noch Anfänger bin.

Schon mal danke für Eure Hilfe

Stefan

anda_skoa
17-09-2002, 13:10
Das geht so nicht, weil dei Funktion strftime einen String erzeugt, der nach nach deinen Wünschen formatiert wird.

Das ist für dich schon ein Schritt zuviel, denn wenn ich richtig verstanden habe, willst du den Wert des Tages, also zum Beispiel für heute 17.

In dem Bespiel zu deiner anderen Frage hab ich ungefhähr so etwas gecshrieben:



struct tm zeit;
time_t now;

time(&now);
zeit = localtime(&now);


Diese struct tm sieht folgendermaßen aus:

Auszug aus man localtime


struct tm {
int tm_sec; /* seconds */
int tm_min; /* minutes */
int tm_hour; /* hours */
int tm_mday; /* day of the month */
int tm_mon; /* month */
int tm_year; /* year */
int tm_wday; /* day of the week */
int tm_yday; /* day in the year */
int tm_isdst; /* daylight saving time */
};


Da gibt es schon den Tag als Integerwert: tm_mday

Du müßtest also so etwas machen (nach dem obigen Beispiel)



in tag = zeit.tm_mday;


Ciao,
_

Stefan Feeser
17-09-2002, 13:52
Thx,

probiere damit ein wenig rum!

Sag mal gibt es eigentlich Literatur wo die "Standartbibliotheken" beschrieben sind oder muss man sich da durch die entsprechende Headerdatei wühlen?

Gruß

Stefan

peschmae
17-09-2002, 14:14
immer noch "Linux/Unix Systemprogrammierung" (A.W. Verlag), geschrieben vom (ominösen) H.H.

MfG Peschmä

anda_skoa
17-09-2002, 14:52
In genau dem Buch hab ich auch nachgeschaut.
Werde zuhause mal nachschaun, wie der Autor heißt :)

Ein anderes Buch, dass solche Sachen wahrscheinlich behandelt:
http://www.advancedlinuxprogramming.com

Ciao,
_

anda_skoa
17-09-2002, 20:28
heißt Helmut Herold

Ciao,
_