Kapitel 5 - Programm 10 - DATUM.H

zurück…

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
    // Kapitel 5 - Programm 10 - DATUM.H

// Diese Datumsklasse soll zeigen, wie man eine nicht triviale
//  Klasse in C++ erstellt. Obwohl sie brauchbar ist, ist sie
//  immer noch einfach genug, um von einer neuen C++ Programmiererin
//  in all ihren Details verstanden zu werden.

#ifndef DATUM_H
#define DATUM_H

class Datum {

    protected:

        int Monat;           // 1 bis 12
        int Tag;             // 1 bis MaxTage
        int Jahr;            // 1500 bis 2200
        static char AusStrom[25];   // Formatierte Ausgabe
        static char Format;         // Format für die Ausgabe

        // Berechne die Anzahl der Tage eines Monats
        // Beachte - Diese Methode ist privat und kann damit
        //       nur innerhalb der Klasse aufgerufen werden
        int TageImMonat(void);

    public:
        // Konstruktor - Setze das Datum auf das aktuelle Datum
        //           und das Format auf 1
        Datum(void);

        // Setze das Datum auf diese Parameter
        //  Rückgabewert = 0 ---> Alle Daten ok
        //  Rückgabewert = 1 ---> Etwas außerhalb des Erlaubten
        int SetzeDatum(int EinMonat, int EinTag, int EinJahr);

        // Hole Monat, Tag oder Jahr der gespeicherten Daten
        int HoleMonat(void) { return Monat; };
        int HoleTag(void)   { return Tag;   };
        int HoleJahr(void)  { return Jahr;  };

        // Wähle das gewünschte Format für die Ausgabe aus, wenn
        //  HoleFormatiertesDatum aufgerufen wird
        void SetzeFormat(int EinFormat) { Format = EinFormat; };

        // Gib eine ASCII-Z Zeichenfolge mit dem gespeicherten Format zurück
        //   Format = 1 Aug 29, 1991
        //   Format = 2 29.8.91
        //   Format = 3 29.8.1991
        //   Format = 4 29 Aug 1991       Militärische Zeit
        //   Format = ? Alles andere wird als Format 1 interpretiert
        char *HoleFormatiertesDatum(void);

        // Gib Jan Feb Mar Apr etc. zurück
        char *HoleMonatsName(void);
};

#endif

zurück…