29. oktober 2002 - 23:25
Der er
6 kommentarer
Dato
Hvordan får jeg lagt det aktuelle årstal ind i en string? Det gør ikke så meget om det bliver i formatet '2002' eller '02'. Jeg bruger standard c.
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
29. oktober 2002 - 23:48
#1
Du skal bruge <time.h>. I den finder du funktionen time(), der returnerer en 'time_t' med den aktuelle tid. Derefter benytter du localtime() til at få 'time_t' (en numerisk værdi) nedbrudt til felter i en 'struct tm'. Endelig benytter du strftime() til at formattere din 'struct tm' til en streng vha. formatteringsstreng i stil med den du bruger i printf()... Mvh Søren
29. oktober 2002 - 23:55
#2
Kaldene er time_t tid = time(NULL); struct tm *nedbrudt_tid = localtime(&tid); char[LENGTH] s; (void) strftime(s, LENGTH-1, "%y %Y", nedbrudt_tid); Dette sidste kald giver dig indholdet "02 2002" i din resulterende streng.
30. oktober 2002 - 22:25
#3
#include <time.h> int aar; struct tm *tm_ptr; time_t the_time; time(&the_time); tm_ptr->gmtime(&the_time); aar=tm_ptr->tm_year-100;
30. oktober 2002 - 22:26
#4
det skulle virke. det er dog en int du får men så må du copy den til et char array;
30. oktober 2002 - 22:28
#5
char string_aar[2]; sprintf(string_aar,"%i", aar);
07. november 2002 - 13:58
#6
Under DOS også: #include <time.h> struct date toDay; char shortDate[9]; /* DD-MM-YY + chr(0) */ char longDate[11]; /* DD-MM-YYYY + chr(0) */ getddate(&toDay); sprintf(shortDate, "%02d-%02d-%02d", toDay.da_day, toDay.da_month, toDay.da_year % 100); sprintf(longDate, "%02d-%02d-%04d", toDay.da_day, toDay.da_month, toDay.da_year);
Kurser inden for grundlæggende programmering