000
09.12.2007, 11:32 Uhr
sia
|
Hallo zusammen, ich habe das Program "datum" geschriebn und nun möchte in diesem program eine stoppuhr einbinden. kann mir sagen wie man eine stoppuhr programmieren kann?
C++: |
#pragma once #include <iostream> #include <time.h> #include <sstream> #include "tstring.h"
using namespace std;
class mydatum { private: tm* datum;
public: mydatum(void); void getDatum(char* date,int mode); TString getDatum(int mode); bool weekorend(); TString getMonatStr(); int getMonatInt(); ~mydatum(void); };
#include "mydatum.h"
//Konstruktor mydatum::mydatum(void) { time_t zeit; time(&zeit); datum = localtime(&zeit); }
//Gibt Monat als int zurück int mydatum::getMonatInt() { return datum->tm_mon +1; }
//Gibt Monat als Wort in TString zurück TString mydatum::getMonatStr() { int mon = datum->tm_mon; switch (mon) { case 0: return "Januar"; case 1: return "Februar"; case 2: return "Maerz"; case 3: return "April"; case 4: return "Mai"; case 5: return "Juni"; case 6: return "Juli"; case 7: return "August"; case 8: return "September"; case 9: return "Oktober"; case 10: return "November"; case 11: return "Dezember"; } return "Fehler bei Monatsname!"; }
//Gibt Datum zurück, mode 1 ist TT.MM.JJJJ - mode 2 TT.MM.JJ TString mydatum::getDatum(int mode) { char chbuf[5]; int number; memset(chbuf,0,5); TString buffer,erg; //Tag itoa(datum->tm_mday,chbuf,10); if(datum->tm_mday < 10) //Überprüfung für führende Null { buffer.setString(chbuf); buffer.insert("0",0); buffer.getString(chbuf); } erg.insert(chbuf,erg.getLen()); erg.insert(".",erg.getLen()); memset(chbuf,0,5); //Monat itoa(datum->tm_mon+1,chbuf,10); if(datum->tm_mon+1 < 10) //Überprüfung für führende Null { buffer.setString(chbuf); buffer.insert("0",0); buffer.getString(chbuf); } erg.insert(chbuf,erg.getLen()); erg.insert(".",erg.getLen()); memset(chbuf,0,5); //Jahr if(mode == 2) //2-stelliges Jahr { number = datum->tm_year; if(number > 100) number -= 100; itoa(number,chbuf,10); if(number < 10) //Überprüfung für führende Null { buffer.setString(chbuf); buffer.insert("0",0); buffer.getString(chbuf); } } else itoa(datum->tm_year+1900,chbuf,10); //4-stelliges Jahr erg.insert(chbuf,erg.getLen());
return erg; }
//Füllt einen übergebenen Puffer mit dem Datum void mydatum::getDatum(char* date,int mode) { TString buffer; char* dbuf; int n = 0; mydatum p; buffer = p.getDatum(mode); //Datum mit der TString-Version von getDatum holen dbuf = (char*) calloc(sizeof(char),buffer.getLen()+1); buffer.getString(dbuf); //Datum aus TString-Objekt in einen char* kopieren while(dbuf[n] > 0) { date[n] = dbuf[n]; n++; } }
//Stellt fest ob Wochenende(Sa,So) ist, oder nicht bool mydatum::weekorend() { if (datum->tm_wday == 0 || datum->tm_wday == 6) return true; else return false; }
mydatum::~mydatum(void) {
}
#include <iostream> #include "mydatum.h"
using namespace std;
int main() { mydatum x; char test[11]; memset(test,0,11); if(x.weekorend()) printf("Freude, es ist Wochenende :)\n\n"); else printf("Leider ist kein Wochenende -_-\n\n"); printf("Der aktuelle Monat ist: <%s>\n",x.getMonatStr()); printf("Der aktuelle Monat als int: <%d>\n\n",x.getMonatInt()); printf("Das Datum aus einem TString (TT.MM.JJ): <%s>\n",x.getDatum(2)); printf("Das Datum aus einem TString (TT.MM.JJJJ): <%s>\n",x.getDatum(1)); x.getDatum(test,1); printf("Das Gleiche, nur aus einem char*: <%s>\n\n\n",test); system("PAUSE"); return EXIT_SUCCESS; }
|
Dieser Post wurde am 09.12.2007 um 12:13 Uhr von FloSoft editiert. |