Wie Rechne ich zeit
-
Ich persö. würde FILETIME verwenden, da man damit mehr Zeiten darstellen kann...
http://msdn.microsoft.com/library/en-us/sysinfo/base/filetime_str.asp
-
Schau ich mir mal an - ich hoffe ich daraus Schlau den die msdn ist ein buch mit 7 Siegeln

-
hab geschaut wie lese ich formatierte zahlen aus den editfeldern aus soweit ich filetime verstanden hab gibt er nur formatierten text aus
bsp: 12:30 so steht der text in der editbox
weis dumme frage
-
Hinweis soweit ich verstanden habe hab bestimmt einiges übersehen
-
Tolle Überschrift.
-
Du kannst Editboxen mit GetWindowText() oder WM_GETTEXT auslesen.
http://msdn.microsoft.com/library/?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowfunctions/getwindowtext.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowmessages/wm_gettext.asp
-
ich red ja auch von formatierten text bsp.: im textfeld steht 10:30 ich möcht jetzt den text auslesen und zwar 10 Stunden und 30 minuten das er den text bis : einließt und dann den rest

-
Zerlege doch den String mit strtok in 2 Teile und rechene dann mit atoi. Sind halt ein paar Zeilen Code, aber eine einfache Variante kenne ich jetzt auch nicht.
-
verds mal probieren
-
Habs jetzt so geloest
[code] BOOL table_calculate_zeit (HWND hWin ,int i) { struct Uhrzeit { double stunde; double minute; }; char* pToken; char* pToken2; char time_0[6]; char szTextR1[10]; char time_1[6]; char szTextR2[10]; char time_2[6]; char szTextR3[10]; char time_3[6]; char szTextErgebnis[10]; Uhrzeit arbeitsBeginn; Uhrzeit arbeitsEnde; GetWindowText(GetDlgItem(hWin, 1019+i),szTextR1,10); //IDC_BEGINN GetWindowText(GetDlgItem(hWin, 1027+i),szTextR2,10); //IDC_ENDE GetWindowText(GetDlgItem(hWin, 1035+i),szTextR3,10); //IDC_PAUSE pToken = strtok(szTextR1, ":"); if (pToken) { sprintf(time_0,"%s",pToken); while ( (pToken = strtok(NULL, ":")) ) { sprintf(time_1,"%s",pToken); } } pToken2 = strtok(szTextR2, ":"); if (pToken2) { sprintf(time_2,"%s",pToken2); while ( (pToken2 = strtok(NULL, ":")) ) { sprintf(time_3,"%s",pToken2); } } arbeitsBeginn.stunde=atof(time_0); arbeitsBeginn.minute=atof(time_1); arbeitsEnde.stunde=atof(time_2); arbeitsEnde.minute=atof(time_3); double arbeitsMinuten=60*(arbeitsEnde.stunde-arbeitsBeginn.stunde) +arbeitsEnde.minute-arbeitsBeginn.minute; double pause=atof(szTextR3); if(IsDlgButtonChecked(hWin, 1051+i) == BST_CHECKED) { /* Von 0:00 - 23:59 */ double arbeitsStunden=arbeitsMinuten/60+24-pause; gcvt (arbeitsStunden,5,szTextErgebnis); } else { /* Zeit Angabe die beginn vor 0:00 - bsp: 6:00 des Folgetages */ double arbeitsStunden=arbeitsMinuten/60-pause; gcvt (arbeitsStunden,5,szTextErgebnis); } SetWindowText(GetDlgItem(hWin, 1043+i),szTextErgebnis); //IDC_STUNDE return 0; } [/code]