Hallo zusammen! Ich habe ein Problem.
Ich habe eine MFC Anwendung vsc++ 6.0. Dort möchte ich Daten aufzeichen und in eine Datei schreiben! Das klappt auch das er mir stündlich die Dateien anlegt!
Aber wie mache ich es jetzt bei einem Monats bzw. Jahreswechsel.
Die Dateien werden Stündlich in einen Ordner geschrieben, der das aktuelle Datum enthält. Der Ordner wird immer kurz vor 23:59 angelegt.
Wie geht das nun, das ich das Datum von dem nächsten Tag bestimmen kann!
Mein satz im moment
Kann mir einer helfen wie man das Datum vom nächsten Tag heraus bekommt. Einfach +1 geht ja nicht da manche Monate ja 30 und ander 31 haben (außer Feb).
Bitte um Hilfe winner
Ich habe eine MFC Anwendung vsc++ 6.0. Dort möchte ich Daten aufzeichen und in eine Datei schreiben! Das klappt auch das er mir stündlich die Dateien anlegt!
Aber wie mache ich es jetzt bei einem Monats bzw. Jahreswechsel.
Die Dateien werden Stündlich in einen Ordner geschrieben, der das aktuelle Datum enthält. Der Ordner wird immer kurz vor 23:59 angelegt.
Wie geht das nun, das ich das Datum von dem nächsten Tag bestimmen kann!
Mein satz im moment
Code:
SYSTEMTIME dtSystemTime;
CString strDay, strMonth, strYear;
CString strDirNameDay;
char cStundenIndikator;
::GetLocalTime( &dtSystemTime);
unsigned int uiSecond = dtSystemTime.wSecond;
unsigned int uiMinute = dtSystemTime.wMinute;
unsigned int uiHour = dtSystemTime.wHour;
unsigned int uiDay = dtSystemTime.wDay;
unsigned int uiMonth = dtSystemTime.wMonth;
unsigned int uiYear = dtSystemTime.wYear;
//Tag und Monat kleiner als 10, dann muss ich da eine Null beifügen
if((uiHour == 0 || uiHour == 1 || uiHour == 2 ||
uiHour == 3 || uiHour == 4 || uiHour == 5 ||
uiHour == 6 || uiHour == 7 || uiHour == 8 ||
uiHour == 9 || uiHour == 10 || uiHour == 11 ||
uiHour == 12 || uiHour == 13 || uiHour == 14 ||
uiHour == 15 || uiHour == 16 || uiHour == 17 ||
uiHour == 18 || uiHour == 19 || uiHour == 20 ||
uiHour == 21 || uiHour == 22 || uiHour == 23 ||
uiHour == 24) && uiMinute == 27 /*&& uiSecond >45*/){
/*if(uiHour == 23){
uiDay = uiDay + 1;
}*/
//wie mache ich den Tages bzw. Monatswechsel u Jahreswechsel
if(uiDay <10){
strDay.Format("%i", uiDay);
strDay = "0" + strDay;
}
else
strDay.Format("%i", uiDay);
if(uiMonth <10){
strMonth.Format("%i",uiMonth);
strMonth = "0" + strMonth;
}
else
strMonth.Format("%i",uiMonth);
strYear.Format("%i", uiYear);
strDirNameDay = strYear + strMonth + strDay;
//AfxMessageBox(strDirNameDay);
//CString strDirName = "X:\\Daniel\\TEST Cpp\\Super"; //also dieser Ordner muss schon bestehen
strDir = strDir + "\\" + strDirNameDay;
switch(uiHour){
case 0:
cStundenIndikator = 'a';
break;
case 1:
cStundenIndikator = 'b';
break;
case 2:
cStundenIndikator = 'c';
break;
case 3:
cStundenIndikator = 'd';
break;
case 4:
cStundenIndikator = 'e';
break;
case 5:
cStundenIndikator = 'f';
break;
case 6:
cStundenIndikator = 'g';
break;
case 7:
cStundenIndikator = 'h';
break;
case 8:
cStundenIndikator = 'i';
break;
case 9:
cStundenIndikator = 'j';
break;
case 10:
cStundenIndikator = 'k';
break;
case 11:
cStundenIndikator = 'l';
break;
case 12:
cStundenIndikator = 'm';
break;
case 13:
cStundenIndikator = 'n';
break;
case 14:
cStundenIndikator = 'o';
break;
case 15:
cStundenIndikator = 'p';
break;
case 16:
cStundenIndikator = 'q';
break;
case 17:
cStundenIndikator = 'r';
break;
case 18:
cStundenIndikator = 's';
break;
case 19:
cStundenIndikator = 't';
break;
case 20:
cStundenIndikator = 'u';
break;
case 21:
cStundenIndikator = 'v';
break;
case 22:
cStundenIndikator = 'w';
break;
case 23:
cStundenIndikator = 'x';
break;
}
CString strFileName;
strFileName.Format("%c",cStundenIndikator);
strFileName = "\\rtcm_monitor_" + strFileName + ".txt";
strDir = strDir + strFileName;
FILE *fNew;
fNew = fopen(strDir, "r");
if(fNew==0)
CreateFile(strDir,GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,SECURITY_ANONYMOUS);
fclose(fNew);
Kann mir einer helfen wie man das Datum vom nächsten Tag heraus bekommt. Einfach +1 geht ja nicht da manche Monate ja 30 und ander 31 haben (außer Feb).
Bitte um Hilfe winner