MonthCalendar

Rearhh

Mitglied
Hoi,

ich habe ein kleines Progrämmchen geschrieben und da muss man ein Datum eingeben. Und ich dachte, ich nehme mal ein MonthCalendar-Control. Das Ding ist im Prinzip sehr praktisch aber.... ermal den Code:

Im main-Programm:
Code:
CZeitaendern windofchange;    //Der Dialog, worüber man über MonthCalendar-Control das Datum eingeben soll....
 CTime fluss; 
 CString Uhr;
 
wind.DoModal();

fluss=windofchange.m_Termin; //m_Termin ist ein CTime-Object, siehe unten

Uhr.Format("%d.%d.%d",fluss.GetDay(),fluss.GetMonth(),fluss.GetYear());
MessageBox(Uhr);

In der CZeitaendern-Klasse:
Code:
void CZeitaendern::OnOK() 
{
 CMonthCalCtrl* pCtrl = (CMonthCalCtrl*) GetDlgItem(IDC_MONTHCALENDAR1);

 pCtrl->GetCurSel(m_Termin); //m_Termin ist public-member von CZeitaendern

 CDialog::OnOK();
}

Das Problem ist, dass beim Auslesen des MonthCalendar-Control das vom Benutzer ausgewählte Datum falsch zurückgegeben wird.
Bsp.:
Der Benutzer wählt den 1.1.1970..... heraus kommt aber der 13.1.1970 , also 12 Tage mehr.... ich habe schon herausgefunden, dass ALLE Daten um 12 Tage verschoben werden.... da ja heute der 12. ist frage ich mich, ob das Zufall ist oder ob (ich muss leider noch etwas warten) es morgen schon 13 Tage Verschiebung sein könnten...

Hat jemand Erfahrung mit diesem Problem? Ich habe dieses Forum schon durchforstet und bin auf dasselbe Problem getroffen, doch leider ohne Lösung.... :(

Vielen Dank für die Hilfe

rear
 
Ok, die Verschiebung ist weiterhin um 12 Tage in die Zukunft...

wenn das Problem bis morgen weiterhin 12 Tage Verschiebung beträgt, werde ich den Rückgabewert einfach um 12 Tage zurückrechnen...

sowas schwachsinniges
 
Also ich hatte das gleiche Problem. Bei mir war es sogar noch extremer mal waren es 3 Tage mal 5 -> ich konnte nicht einfach das Datum hinpfuschen.

Bei mir hat es erst funktioniert als ich nicht mit CTime gearbeitet habe, sondern SYSTEMTIME benutzt habe. Keine Ahnung warum :confused:

Code:
SYSTEMTIME t;
int i = m_control.GetCurSel(&t);

int day =t.wDay;
int month = t.wMonth;

wobei m_control ein CMonthCalCtr ist

MfG Executer
 
Ja! Vielen Dank....

so funktioniert es... :rolleyes: komisches Teil so ein MonthCalendar....

ich denke, ich handhabe es wie Quantenphasenkanone... ich hab keine Peilung wie es oder warum es funktioniert... aber ich weiss, dass ich große Löcher damit machen kann....

Thx
 
Zurück