C, Zeit, Tag, Monat, Jahr und mehr
Habe ich ein problem.
Ich brauche, um Dinge wie Tag des Jahres, Tag des Monats, Monat, Jahr usw.
Ich benutze diesen code:
#include <stdio.h>
#include <time.h>
int main(void)
{
time_t liczba_sekund;
struct tm strukt;
time(&liczba_sekund);
localtime_r(&liczba_sekund, &strukt);
printf("today is %d day of year\nmonth is %d, month's day %d\n", strukt.tm_yday+1, strukt.tm_mon+1, strukt.tm_mday);
return 0;
}
Erste Sache: warum wird gcc -std=c99 -pedantic -Wall zurückkehren diese Warnung:
Meine Eingabe: gcc-test_data.c -o-test_data.aus -std=c99 -pedantic -Wall -
Ausgabe:
test_data.c: In function 'main':
test_data.c:11:3: Warnung: implizite Deklaration der Funktion "localtime_r' [-Wimplicit-function-declaration]
Zweite Sache: wie es funktioniert auf windows? Beim Versuch zu kompilieren mit Dev-C habe, bekam ich diese:
http://imgur.com/U7dyE
@@EDIT --------------------
Ich habe gefunden ein Beispiel für Ihre localtime Vorschlag:
#include <stdio.h>
#include <time.h>
int main ()
{
time_t time_raw_format;
struct tm * ptr_time;
time ( &time_raw_format );
ptr_time = localtime ( &time_raw_format );
printf ("Current local time and date: %s", asctime(ptr_time));
return 0;
}
Wie kann ich dies ändern Datum-format wie diesem: 5.12.2012 oder 5-12-2012? Und wie man den Tag des Jahres?
Ich würde lieben, wenn die Lösung funktioniert sowohl auf windows und linux.
InformationsquelleAutor Dominik C | 2012-12-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
localtime_r
ist nicht Teil der C-standard. Vielleicht waren Sie auf der Suche fürlocaltime
?localtime_r
ist wirklich auf vielen linux-Systemen:Jedoch, da es nicht Teil der Norm, kann es nicht auf Windows.
Verwenden Sie
strftime
stattasctime
:int
Rückgabetyp ist nicht mehr Teil der spec. Einige Compiler z.B.clang
darüber beschweren, wenn es in pedantisch-Modus.Woops. Bis zu welcher Norm wurde die implizite Rendite geben Sie den Teil der spec?
Es war ein Teil von C89, aber die Einführung des C99-standard erwähnt, das entfernen von es. Das gleiche mit impliziten int-argument-Typen.
InformationsquelleAutor Zeta
localtime auf Windows sein soll thread-safe pro: http://msdn.microsoft.com/en-us/library/bf12f0hc%28VS.80%29.aspx
InformationsquelleAutor Cool