Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » stoppuhr

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
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.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: