WOchentag Bestimmen



  • Hallo Zusammen, ich habe mal eine Frage bezueglich der DATE Funktion, und zwar moechte ich zu meinen eingegebenen Datum den Wochentag bestimmen, hier ist der Quellcode soweit wie ich gekommen bin....

    Könnse mir Helfen?!

    #include <stdio.h>
    #include <time.h>
    #include <string.h>
    #include <iostream>
    
    using namespace std; //Direktive 
    /*
    Im Gueltigkeitsbereich des Files wird der Namensbereich 
    mit dem Namen std zur Verfuegung gestellt. 
    */
    
    class CDatum
    {
    
    private:
    		//Instanzvariablen
    		int		m_iTag;
    		int		m_iMonat;
    		int		m_iJahr;
    		int 	m_cWochenTag;
    
    		int MonatTagMax(void);
    
    public:
    	   //Methoden
    		void DatumEingabe(void);
    		void DatumAusgabe(void);
    		void DatumTag(void);
    
    		CDatum(void); //Konstruktor
    
    };
    
    CDatum::CDatum()
    {
    	tm date;
    
    	time_t time_then;
    
    	m_iTag			= date.tm_mday;
    
    	m_iMonat		= date.tm_mon+1;
    
    	m_iJahr			= date.tm_year+1900;
    
    	m_cWochenTag	= date.tm_wday;
    
    	time_then = mktime( &date );
    }
    
    void CDatum::DatumEingabe(void)
    {
    	int DatumOK=0;
    	while(DatumOK!=1) //Whileschleife, solange widerholen wie DatumOK ungleich 1 ist
    	{
    		cout << "Geben sie den Tag ein: ";
    		cin  >> m_iTag;
    		cout << endl;
    		cout << "Geben sie den Monat ein: ";
    		cin  >> m_iMonat;
    		cout << endl;
    		cout << "Geben sie das Jahr ein: ";
    		cin  >> m_iJahr;
    
    		if(m_iJahr < 50)
    		{
    			m_iJahr=m_iJahr+2000;
    		}
    		else
    		{
    			if(m_iJahr<100)
    			{
    				m_iJahr=m_iJahr+1900;
    			}
    		}
    
    		if(m_iMonat>0 && m_iMonat<13 && m_iJahr>1582 && m_iTag>0 && m_iTag<=MonatTagMax())
    		{
    			DatumOK=1;
    		}
    		else
    		{
    			cout << "Eingabefehler";
    			cin.get();
    		}
    	}
    }
    
    void CDatum::DatumAusgabe(void)
    {
    
    	cout<< m_cWochenTag <<":" << m_iTag <<"." << m_iMonat << "." << m_iJahr;
    }
    
    int CDatum::MonatTagMax(void)
    {
    	switch(m_iMonat)
    	{
    	case 2: if(!((m_iJahr%100)%4) && (m_iJahr%100) || !(m_iJahr%400))
    				return (29);
    		else
    				return (28);
    		break;
    	case 4: case 6: case 9: case 11:
    				return (30);
    		break;
    
    	default: return (31);
    	}
    }
    
    int main()
    {
    	CDatum Datum;
    
    	Datum.DatumEingabe();
    	Datum.DatumAusgabe();
    
    	return 0;
    
    }
    


  • Leute macht mal kein Scheiß...

    das ist wichtig!



  • Da steht was du machen musst:
    http://www.cplusplus.com/ref/ctime/mktime.html

    Sogar mit Beispiel, dass genau deinen Fall löst. Setz die Seite am besten gleich zu deinen Favoriten ;).


Anmelden zum Antworten