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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
// Kapitel 6 - Programm 16 - ZEIT.CPP
#include <stdio.h> // Für die Funktion sprintf
#include <time.h> // Für die Funktionen time & localtime
#include "zeit.h" // Für den Kopf der Klasse
char Tageszeit::Format; // Definition des statischen Elementes
char Tageszeit::AusZeichenkette[25]; // Definition der Zeichenkette
// Konstruktor - Setze aktuelle Zeit und
// Format auf 1
Tageszeit::Tageszeit(void)
{
time_t ZeitDatum;
struct tm *AktuelleZeit;
ZeitDatum = time(NULL);
AktuelleZeit = localtime(&ZeitDatum);
Stunde = AktuelleZeit->tm_hour;
Minute = AktuelleZeit->tm_min;
Sekunde = AktuelleZeit->tm_sec;
Format = 1;
}
// Setze die Zeit auf Eingabewerte
// Rückgabe = 0 ---> Daten sind ok
// Rückgabe = 1 ---> Etwas außerhalb des Limits
int Tageszeit::SetzeZeit(void) {return SetzeZeit(0, 0, 0); };
int Tageszeit::SetzeZeit(int H) {return SetzeZeit(H, 0, 0); };
int Tageszeit::SetzeZeit(int H, int M) {return SetzeZeit(H, M, 0); };
int Tageszeit::SetzeZeit(int EinStunde, int EinMinute, int EinSekunde)
{
int Fehler = 0;
if (EinStunde < 0)
{
EinStunde = 0;
Fehler = 1;
}
else if (EinStunde > 59)
{
EinStunde = 59;
Fehler = 1;
}
Stunde = EinStunde;
if (EinMinute < 0)
{
EinMinute = 0;
Fehler = 1;
}
else if (EinMinute > 59)
{
EinMinute = 59;
Fehler = 1;
}
Minute = EinMinute;
if (EinSekunde < 0)
{
EinSekunde = 0;
Fehler = 1;
}
else if (EinSekunde > 59)
{
EinSekunde = 59;
Fehler = 1;
}
Sekunde = EinSekunde;
return Fehler;
}
// Gib eine ASCII-Z Zeichenkette gemäß Ausgabeformat zurück
// Format = 1 13:23:12
// Format = 2 13:23
// Format = 3 1:23 PM
char *Tageszeit::HoleFormatierteZeit(void)
{
switch (Format)
{
case 2 : sprintf(AusZeichenkette, "%2d:%02d", Stunde, Minute);
break;
case 3 : if (Stunde == 0)
sprintf(AusZeichenkette, "12:%02d AM", Minute);
else if (Stunde < 12)
sprintf(AusZeichenkette, "%2d:%02d AM", Stunde, Minute);
else if (Stunde == 12)
sprintf(AusZeichenkette, "12:%02d PM", Minute);
else
sprintf(AusZeichenkette, "%2d:%02d PM",
Stunde - 12, Minute);
break;
case 1 : // weiter zum Standard, Standardausgabe ist also immer 1
default : sprintf(AusZeichenkette, "%2d:%02d:%02d",
Stunde, Minute, Sekunde);
break;
}
return AusZeichenkette;
}
|
Copyright © 1997, 1998, 2001-2005 Heinz Tschabitscher - Letzte Änderung 13. September 2005
Heinz Tschabitscher - | Datenschutz | Impressum - Kommentare, Kritik, Anregungen, Fragen?