Avatar billede montago Praktikant
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 :)
Avatar billede arne_v Ekspert
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
Avatar billede montago Praktikant
28. august 2006 - 16:53 #2
er det nødvendigt at udfylde samtlige SYSTEMTIME variable ?
Avatar billede arne_v Ekspert
28. august 2006 - 17:20 #3
ikke day-of-week

og millisekunder kan daette til 0
Avatar billede arne_v Ekspert
28. august 2006 - 17:21 #4
saette
Avatar billede montago Praktikant
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;
}
Avatar billede arne_v Ekspert
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
Avatar billede arne_v Ekspert
28. august 2006 - 17:34 #7
en 64 bit integer var noget mere sikker end double
Avatar billede montago Praktikant
28. august 2006 - 18:01 #8
hvordan er det med 64bit int, er det
INT INT (ligsom long long)

eller  _INT64 man bruger ?
Avatar billede montago Praktikant
28. august 2006 - 18:03 #9
anyway, post et svar eller noget :P
Avatar billede arne_v Ekspert
28. august 2006 - 18:37 #10
long long for GCC og nyere MSVC++

_int64 for MSVC++ og f.eks. DECC

og et svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester