2014-06-11 13 views
7

Próbuję wydrukować datę z ciągu znaków typu "01/01/01" i napisać coś w stylu "Poniedziałek 1 stycznia 2001 r."Jak wydrukować datę w C?

Znalazłem coś z człowiekiem ctime, ale tak naprawdę go nie rozumiem jak go używać.

pomocy?

Dzięki

+0

Udostępnij czego znalazłem proszę –

+0

Właściwie, prawie nic o człowieku. Po prostu zrozumiałem, że istnieje struktura, którą możemy wypełnić .. Ale nie wiem jak. Struct to "struct tm timep" – Difender

+0

http://www.java2s.com/Code/C/Development/PrintlocalandUTCtime.htm Zobacz ten link może ci pomóc. –

Odpowiedz

5

Można użyć strptime przekonwertować datę ciąg do struct tm

struct tm tm; 
strptime("01/26/12", "%m/%d/%y", &tm); 

a następnie wydrukować struct tm w odpowiednim formacie bieżąco z strftime

char str_date[256]; 
strftime(str_date, sizeof(str_date), "%A, %d %B %Y", &tm); 
printf("%s\n", str_date); 
+0

Działa naprawdę dobrze, wielkie dzięki! – Difender

4

strftime() spełnia swoje zadanie.

char buffer[256] = ""; 
{ 
    struct tm t = <intialiser here>; 
    strftime(buffer, 256, "%H/%M/%S", &t); 
} 
printf("%s\n", buffer); 
+0

Sygnatura 'strftime' to' size_t strftime (char * s, size_t max, const char * format, const struct tm * tm); '. Brakuje parametru 'size_t'. – HAL

+0

Dziękuję, poprawiono. @HAL – alk