Frage zur time.h "header"
-
Hallo,
ich hätte gerne das mir meine "Anwendung" das Datum (TTMMJJ Z.b. 270608)
in eine "integer" variable speichert oder halt in einer "double".Ich schätze (denke mal) das, dass mit der time.h sehr gut klappen kann.Da ich mit dieser Funktion sehr gut voran gekommen bin,
Nur fehlt mir einfach die richtige Syntax.aus dieser Zahl soll dann eine Wurzel gezogen werden, die dann dem Anwender (mit cout << oder so) angezeigt werden.
Da ich vieles versucht habe und viele Wege zu guten (aber nicht brauchbaren) Ergebnissen brachte, habe ich gerade keinen aktuellen Code der sinn machen würde.
bitte um Hilfe.
-
schau mal in die haederdatei rein da wirst du sehen das alles in
struct tm { int tm_sec; /* Seconds: 0-59 (K&R says 0-61?) */ int tm_min; /* Minutes: 0-59 */ int tm_hour; /* Hours since midnight: 0-23 */ int tm_mday; /* Day of the month: 1-31 */ int tm_mon; /* Months *since* january: 0-11 */ int tm_year; /* Years since 1900 */ int tm_wday; /* Days since Sunday (0-6) */ int tm_yday; /* Days since Jan. 1: 0-365 */ int tm_isdst; /* +1 Daylight Savings Time, 0 No DST, * -1 don't know */ };
abgelegt wird das zusammen rechen bekommst dann wohl selber hin
-
Das habe ich mir ja bereits durchgelesen und auch angewendet.
Teilweise kommt da ein Zahlensalat raus, oder die Syntax stimmt nicht.Es soll nix zusammen gerechnet werden.Er soll den Tag (29) den Monat (06) und das Jahr (08) einfach an einander reihen (290608).
-
machs doch einfach so
tm now; // now initialisieren und sowas alles, berehcnunen anstellen cout << now.tm_mday << "." << now.tm_mon << "." << now.year << endl;
sollte so klappen oder nicht??
-
ach shit
frage nicht gut durchgelesen...
du willst das ganze als eine zahl haben?
dann konvertier das ganze in ein char array und wandel das in ne zahl um
-
nicht schlimm.
mhhhh....werde mich mal damit auseinander setzten.
Danke
-
alsooooo:
Bis hier hin bin ich gekommen.
#include <iostream> #include <conio.h> using namespace std; int zahl[2]; // Array1 char bla[2]; // Array2 int datum; // Integer Variable "Datum" int main() { cin >> zahl[0]; // = Array1 wird mit Zahlen "gefüllt" cin >> zahl[1]; cin >> zahl[2]; bla[0] = (char) zahl[0]; // Array1 wird zu einem "char" umgewandelt und in Array2 gespeichert. bla[1] = (char) zahl[1]; bla[2] = (char) zahl[2]; char strcat(char bla[0], char bla[1], char bla[2]); /* Array2 wird zu einem einzigem "char" aneinader gereiht. Dieser wird dann in bla[0] gespeichert */ datum = (int) bla[0]; // "char" wird zu "integer" cout << bla[0]; // "integer" wird ausgegeben (das natürlich nicht klappt) getch(); return 0; }
Ich finde es ganz eindeutig aber mein Compiler kann
warscheinlich kein "c++ " daher gibt er mir bei der Eingabe
von den Zahlen "1" , "2" und "3" einen smiley aus.Ich habe jeden Schritt mit einem Kommentar versehen.
Bitte berichtigt mich, wenn ich etwas falsch sehe oder eine falshe Syntax eingegeben habe.
-
schau dir mal den ascii zeichensatz an
könnte hielfreich sein^^
-
ich glaube in diesem falle handelt es sich nicht um den Ascii zeichensatz, oder?
kann mir da keiner weiter helfen?
-
Hallo,
wie wäre es damit:
#include <iostream> #include <ctime> #include <conio.h> using namespace std; int main() { tm eingabeZeit; char datumsText[7] = {0,}; // Array für Datum im Format TTMMJJ, mit Nullen füllen cin >> eingabeZeit.tm_mday; // Tag von 1 - 31 cin >> eingabeZeit.tm_mon // Monat als Zahl von 1 - 12 cin >> eingabeZeit.tm_year // Jahr von 0 - 99 --eingabeZeit.tm_mon; // eins weniger, weil strftime Monate von 0 - 11 erwartet strftime(datumsText, 7, "%d%m%y", &eingabeZeit); cout << datumsText ; getch(); return 0; }
Das kann man noch verbessern (Eingabeprüfung, weil strftime auch prüft, ob es sich um ein gültiges Datum handelt).
MfG,
Probe-Nutzer