28. august 2006 - 13:46
Der er
9 kommentarer og 1 løsning
konverting af tid og tilskrivning af date_modified på filer
Jeg har et dato_tids stempel skrevet ned på følgende måde: 20060806010120 hvilket vil sige: 2006/08/06 01:01:20 dette tidsstempel skal skrives in i en fil med funktionen: SetFileTime(fp, <tid>); problemet er jeg ikke fatter en bjælle af FILETIME formatering i C++/C - so please help :)
Annonceindlæg fra FPT Software
28. august 2006 - 16:26
#1
du parser den streng saa udfylder du en struct SYSTEMTIME og saa bruger du SystemTimeToFileTime til at konvertere den til en struct FILETIME
28. august 2006 - 16:53
#2
er det nødvendigt at udfylde samtlige SYSTEMTIME variable ?
28. august 2006 - 17:20
#3
ikke day-of-week og millisekunder kan daette til 0
28. august 2006 - 17:21
#4
saette
28. august 2006 - 17:23
#5
jeg forsøger at lave en funktion ud af det... den brokker sig over assignment af strings... går ud fra det er int's ? FILETIME* timeconv(double tVal){ //tVal format is: YYYY MM DD hh mm ss // 0 4 6 8 10 12 SYSTEMTIME *st; FILETIME *ft; string t = static_cast<string>(tVal); st->wYear = t.substr(0,4); st->wMonth = t.substr(4,2); st->wDay = t.substr(6,2); st->wHour = t.substr(8,2); st->wMinute = t.substr(10,2); st->wSecond = t.substr(12,2); //st.wDayOfWeek; //st.wMilliseconds; SystemTimeToFileTime(st,ft); return ft; }
28. august 2006 - 17:34
#6
du har den som double ? st->wYear = tVal / 10000000000.0; st->wMonth = fmod(tVal,10000000000.0) / 100000000.0; ... vil jeg tro
28. august 2006 - 17:34
#7
en 64 bit integer var noget mere sikker end double
28. august 2006 - 18:01
#8
hvordan er det med 64bit int, er det INT INT (ligsom long long) eller _INT64 man bruger ?
28. august 2006 - 18:03
#9
anyway, post et svar eller noget :P
28. august 2006 - 18:37
#10
long long for GCC og nyere MSVC++ _int64 for MSVC++ og f.eks. DECC og et svar
Kurser inden for grundlæggende programmering