Hallo zusammen,
versuche mich gerade seit ein paar Tagen an c++.
Leider fehlt mir zur Zeit anscheinend noch Grundlegendes!
Und zwar habe ich folgendes Problem:
ich möchte den TAG von localtime mit dem Tag welcher in einer .txt steht mittels einem if() vergleichen.
Leider komme ich zur Zeit nocht nicht so ganz mit der Konvertierung zu Recht!
bei mir siehts zur Zeit so aus:
Zweck: ich möchte vom Programm mittels "ACHTUNG" darauf hingewiesen werden, wenn das Datum aus Datei.txt älter als das Datum der Systemzeit ist.
Zu meinem Problem:
Der compiler meckert zur Zeit natürlich noch, dass man von dem string TAG_local nichts substrahieren kann,was auch verständlich ist!
Also: Wie stelle ich das nun an?? Macht es Sinn z.B den String TAG_local und TAG in einen int zu konvertieren? Wenn ja, wie?? Oder gestalte ich die ganze Sache hier sowieso zu umständlich??
EDIT:Habe es auch hiermit versucht:
string datum(text);
string TAG = datum.substr( 0, 2);
string MONAT = datum.substr( 3, 2);
string localtime2 = zeit_buendel.str();
string datum_localtime(localtime2);
string TAG_local = datum_localtime.substr( 0, 2);
string MONAT_local = datum_localtime.substr( 3, 2);
int TAG_int=0, MONAT_int=0, TAG_local_int=0, MONAT_local_int=0;
TAG_int = atoi(TAG);
MONAT_int = atoi(MONAT);
TAG_local_int = atoi(TAG_local);
MONAT_local_int = atoi(MONAT_local);
Geht jedoch leider nicht!
Sorry aber jeder hat mal klein angefangen!
Danke und viele Grüße!
versuche mich gerade seit ein paar Tagen an c++.
Leider fehlt mir zur Zeit anscheinend noch Grundlegendes!
Und zwar habe ich folgendes Problem:
ich möchte den TAG von localtime mit dem Tag welcher in einer .txt steht mittels einem if() vergleichen.
Leider komme ich zur Zeit nocht nicht so ganz mit der Konvertierung zu Recht!
bei mir siehts zur Zeit so aus:
Code:
void test()
{
int main(int argc, char *argv[]);
{
time_t Zeitstempel;
tm *nun;
Zeitstempel = time(0);
nun = localtime(&Zeitstempel);
stringstream zeit_buendel;
zeit_buendel << nun->tm_mday << '.' << nun->tm_mon+1 << '.' << nun->tm_year+1900;
ifstream file;
string fileName = "Pfad/Datei.txt";
file.open(fileName.c_str());
if (file)
{
string text;
while(!file.eof())
{
string buffer;
getline(file, buffer);
text += buffer;
}
string datum(text);
string TAG = datum.substr( 0, 2);
string MONAT = datum.substr( 3, 2);
string localtime2 = zeit_buendel.str();
string datum_localtime(localtime2);
string TAG_local = datum_localtime.substr( 0, 2);
string MONAT_local = datum_localtime.substr( 3, 2);
// if (((MONAT = MONAT_local) && (TAG > TAG_local-15)) || ((MONAT != MONAT_local) && (TAG < TAG_local+15)))
{
cout << "passt:\t\t" << text << "\n";
}
// else
{
cout << "ACHTUNG:\t\t" << text << "\n";
}
file.close();
}
else
{
cout << "- - - Datei nicht gefunden!\n";
}
return;
}
Zweck: ich möchte vom Programm mittels "ACHTUNG" darauf hingewiesen werden, wenn das Datum aus Datei.txt älter als das Datum der Systemzeit ist.
Zu meinem Problem:
Der compiler meckert zur Zeit natürlich noch, dass man von dem string TAG_local nichts substrahieren kann,was auch verständlich ist!

Also: Wie stelle ich das nun an?? Macht es Sinn z.B den String TAG_local und TAG in einen int zu konvertieren? Wenn ja, wie?? Oder gestalte ich die ganze Sache hier sowieso zu umständlich??
EDIT:Habe es auch hiermit versucht:
string datum(text);
string TAG = datum.substr( 0, 2);
string MONAT = datum.substr( 3, 2);
string localtime2 = zeit_buendel.str();
string datum_localtime(localtime2);
string TAG_local = datum_localtime.substr( 0, 2);
string MONAT_local = datum_localtime.substr( 3, 2);
int TAG_int=0, MONAT_int=0, TAG_local_int=0, MONAT_local_int=0;
TAG_int = atoi(TAG);
MONAT_int = atoi(MONAT);
TAG_local_int = atoi(TAG_local);
MONAT_local_int = atoi(MONAT_local);
Geht jedoch leider nicht!
Sorry aber jeder hat mal klein angefangen!

Danke und viele Grüße!
Zuletzt bearbeitet: