-
Zeit auslesen
hallo
eigentlich habe ich kein grosses problem, aber irgenwie will mein ppc nicht so ganz.. kann mir mal irgenwer sagen wie man die zeit aus dem pocketpc ausliest?! ich habs so versucht...
char *timevalues = "yymmddhhmmss";
CTime time;
timevalues[0] = (time.GetYear() % 100 / 10) + 48;
timevalues[1] = (time.GetYear() % 100 % 10) + 48;
timevalues[2] = (time.GetMonth() / 10) + 48;
timevalues[3] = (time.GetMonth() % 10) + 48;
timevalues[4] = (time.GetDay() / 10) + 48;
timevalues[5] = (time.GetDay() % 10) + 48;
timevalues[6] = (time.GetHour() / 10) + 48;
timevalues[7] = (time.GetHour() % 10) + 48;
:
:
:
Doch irgendwie bekomme ich die falschen Wert, so steht zum beispiel in timevalues[0] der wert 3, ebenso in [1]. In [2] ist eine 1, in [3] auch...
was habe ich falsch gemacht? gibt es eine gute alternative?
-
was ich sonst noch damit getestet habe:
Code:
CTime time;
CTime current = time.GetCurrentTime();
CString writeStr;
writeStr.Format(_T("%02d.%02d.%4d %02d:%02d"), current.GetDay(),current.GetMonth(),current.GetYear(),current.GetHour(),current.GetMinute());
TCHAR *s = (LPTSTR)((LPCTSTR)writeStr);
MessageBox(0,s,0,0);
und das ergibt mir: 25.08.1867 02:19
ich glaube fast ich spinne..
-
Hallo Marc_ch
Hast Du bei Deiner Zeitberechnung berücksichtigt, dass die UTC-Zeit richtig umgerechnet wird?
Auf jeden Fall würde ich mit FILETIME arbeiten, da es die absoluten Werte mittels 64-Bit Integer wiedergibt (64-Bit Integer basiert auf der Anzahl von 100ns-Intervallen (Nanosekunden) pro Sekunde, die seit dem 1. Januar 1601 wiedergegeben werden (UTC). Der 1. Januar 1900, den man mit "SystemTimeToFileTime" umgerechnet müssten, enthält bereits die Anzahl dieser Intervalle. Nur der Zeit-Wert muss noch entsprechend ergänzt werden. Der Wert von 10.000.000 ergibt sich, weil pro Sekunde eben 10 Millionen solcher 100ns-Intervalle möglich sind.)
Gigs, @lex&er
-
nö habe keine umrechnung gemacht, hast du mir vielleicht ein kleines beispiel?
-
Schau mal hier nach, vielleicht kannst Du Dir hier noch gewisse Anreize holen:
http://www.luckie-online.de/tutorial...ituts/dt.shtml
Gigs, @lex&er
-
aber ist das nicht nur für desktop pcs? verstehe das ganze nicht so ganz... kannst du mir nicht sagen wie ich utc umwandeln kann? ich kann ja eine zeit holen, aber sie liegt meilen vom richtigen resultat entfernt...
-
ok habs mal versucht:
Code:
SYSTEMTIME ti;
GetLocalTime(ti);
.............. = ti.wYear;
aber dieser aufruf geht nicht weil ti vom typ (SYSTEMTIME *ti) sein sollte.
wenn ich dies aber ändere kann ich den aufruf mit ti.wYear nicht mehr machen... what should i do?
-
uu wieder mal selber blöd...
Code:
SYSTEMTIME ti;
GetLocalTime(&ti);
:
:
:
und alles funktioniert...
-
habe noch eine zusatzfrage, hast du eine ahnung wie ich die wochennummer bestimmen kann?
-
Hallo Marc_ch
Sorry, aber ich kenne mich in der Programmierung nicht gross aus (komme eher von der Hardware-Seite), daher weiss ich überhaupt nicht, wie man z.B. Wochennummern auslesen kann (wo wäre diese überhaupt hinterlegt?!?).
Gigs, @lex&er
-
ich denke sie ist nicht hinterlegt, sondern muss errechnet werden..