PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Datum in einer variable



errox
03.09.2007, 16:14
Hallo, ich wollte fragen wie ich das aktuelle datum in einer variable abspiechern kann.

Am besten so:

int day = DATUMSTAG
int wday = WOCHENTAG ( z.b. mittwoch )
int mon = MONAT
int year = JAHR

beim jahr nur die 2 endziffern. also nicht 2007 sondern 07

Danke für antworten. MfG errox

exodus407
03.09.2007, 16:29
hallo !

also mit int weiß ichs jetzt auswendig nicht aber mit char würde es gehen und zwar so :

#include <time.h>
#include <conio.h>
#include <iostream>

using namespace std;

int main()
{
char buffer[10];

_strdate(buffer);
cout<<"Datum: "<<buffer<<endl;


getch();
return 0;
}

und dann machst du das immer so dass du das einfach an andere strings
übergibst

char day[3];
char month[3];
char year[3];

month[0]=buffer[0]; /*month als erses weil das Datum so abgefragt wird : MM\DD\YY*/
month[1]=buffer[1];
printf("%s",&month);

ich weiß is ne unelegante lösung aber wenns anders besser geht werd ich editiern oder posten !

mfg Exo

ps: bei so einem kurzen prog ist das aber egal ! ^^

Added after 4 minutes:

achja bei diesem befehl hat das jahr nur 2 ziffern ^^

ich hoffre ich konnte dir helfen !

errox
03.09.2007, 16:36
Joa teilweise. Dankeschön. Ist zwar ned das so direkt, wonach ich gesucht habe, aber immerhin ^^

exodus407
03.09.2007, 16:41
warte einfach auf andere posts aber ich habs nix gefunden iwe das mit int gehen sollte(hab im header time.h) nach geguckt !

ähhh..... achja genau was willst du damit machen willst du ein programm umgehen mit dem DKILL95 prinzip oder was ??

wenn ja dann ist das genau der richtige code für dich nur noch datum setztn mit system("date ....."); oder mit c++ wen du's kannst und fertig !

andererseits könnte ich schaun ob ich einen anderen befehl finde !

mfg EXO

Steav
03.09.2007, 17:07
Uhm also ich weiß jetz nich wie's in C/CPP aussieht aber in C#
könntest du einfach einen DatetimeString erstellen, und die jeweiligen Substrings in deine gewünschten INT werte konvertieren.

errox
03.09.2007, 19:46
Danke für den C# tipp. Hab ich aber schon probiert.

Ne ich will einfach nur Einen Ordner erstellen mit dem Aktuellen darum als namen ohne / Sondern einfach ein über ordner ( das jahr )

Variable 07 open( usw )

dann unterordner die Monatsnamen switch( usw )

in den ordnern der monate drinnen ist eine text datei abgespeichert mit dem Tag und dem Tagdatum abgespeichert..

MI 26.txt bsp...

Das ist für ne datenbank :D

-[RiDER]-
03.09.2007, 22:06
Du brauchst den Header time.h. Die Funktion time_t time(time_t *ptr); liefert die Anzahl der Sekunden, die seit dem 1. Januar 1970 Mitternacht verstrichen sind. Wenn man ihr einen Zeiger vom Typ time_t bzw. long mit dem Wert ungleich NULL übergibt, speichert sie den Wert in dieser Variable.

Der Funktion size_t strftime(char *s, size_t max, char *fmt, struct tm *ptr); kann man diese Zahl als letzten Parameter übergeben. *fmt ist der Formatstring, in dem das Muster des Datums (das letzendlich in *s gespeichert wird) angegeben ist. Es gibt folgende Spezifier für fmt:
%a - Abgekürzte Bezeichnung des Wochentags
%A - Volle Bezeichnung des Wochentags
%b - Abgekürzter Monatsname
%B - Voller Monatsname
%c - Datums- und Zeitdarstellung (zum Beispiel, Tue Apr 18 10:41:50 2000)
%d - Tag des Monats als Dezimalzahl von 01 bis 31
%H - Die Stunde als Dezimalzahl von 00 bis 23
%I - Die Stunde als Dezimalzahl von 00 bis 11
%j - Der Tag des Jahres als Dezimalzahl von 001 bis 366
%m - Der Monat als Dezimalzahl von 01 bis 12
%M - Die Minute als Dezimalzahl von 00 bis 59
%p - AM oder PM
%S - Die Sekunde als Dezimalzahl von 00 bis 59
%U - Die Woche des Jahres als Dezimalzahl von 00 bis 53. Der Sonntag gilt als erster Tag der Woche.
%w - Der Wochentag als Dezimalzahl von 0 bis 6 (Sonntag = 0)
%W - Die Woche des Jahres als Dezimalzahl von 00 bis 53. Der Montag gilt als erster Tag der Woche
%x - Das Datum (zum Beispiel, 30-Jun-91)
%X - Die Zeit (zum Beispiel, 10:41:50)
%y - Das Jahr ohne Jahrhundert als Dezimalzahl von 00 bis 99
%Y - Das Jahr mit Jahrhundert als Dezimalzahl.
%Z - Der Name der Zeitzone, wenn die Information verfügbar ist, oder leer, wenn er nicht bekannt ist
%% - Ein einzelnes Prozentzeichenmax gibt die maximale Größe des Strings (der in s gespeichert wird) an. Ist der String größer als max, ist s leer und die Funktion liefert 0 zurück.
Mit der Funktion int atoi(char *ptr); kannst du Strings in Integer umwandeln (einzeln!).

Wenn was unverständlich ist: sags. Und du weißt: Google ist dein Freund!

MfG RiDER

errox
04.09.2007, 20:47
Wenn was unverständlich ist: sags. Und du weißt: Google ist dein Freund!


www.gidf.de ;)

Ich benutz die funktion die mir Zao empfolen hat. GetLocalTime