Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Datum umwandeln

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
28.05.2004, 10:30 Uhr
~escapt
Gast


ich brauche ein kleines Programm mit dem man vom Datum her aussrechnen kann was für ein Wochentag es ist.
Also z.B. 28|05|2004 würde er dann Freitag ausgeben!
ich habe schon alles aussprobiert, aber irgendwie funktioniert es einfach nicht und eine richtige Hilfe habe ich im Internet auch nicht gefunden, kann mir jemand helfen? danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
28.05.2004, 10:55 Uhr
ao

(Operator)


Selber ausrechnen oder Systemfunktionen verwenden?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
28.05.2004, 11:39 Uhr
~escapt
Gast


Systemfunktion, immer vom aktuellem Datum!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
28.05.2004, 14:27 Uhr
ao

(Operator)



C++:
#include <stdio.h>
#include <time.h>

int main (void)
{
    time_t t;
    time (&t);
    printf ("%s\n", asctime (localtime (&t)));
    return 0;
}


Speichere das Ergebnis von asctime in einem String und extrahiere daraus den Wochentag.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
28.05.2004, 16:25 Uhr
~AS
Gast


Hallo,

wenn ich es richtig verstanden habe, geht es darum zu einem gegebenen Datum den Wochentag zu ermitteln und nicht den aktuellen Wochentag.

Ich hatte mal ein ähnliches Problem, bei dem sich der Wochentag sozusagen nebenher berechnet hat.

Hier Teile des damaligen Codes für Win3x. Müsste aber so auch mit höheren Versionen funktionieren.


Code:
   long lDiffDay;
   int  iWdJ11,iWdAktuell;
   int iYear,iMonth,iDay;              
   char *pcD;
   int iKw=0;
   struct tm  sJ11, sAktuell;
  
   // pcDate = TT.MM.JJ
   iDay=atoi(pcDate);      
   pcD=pcDate+3;
   iMonth=atoi(pcD);
   pcD=pcDate+6;
   iYear=atoi(pcD);
   if(iYear<70) iYear+=100; // 1970 bis 2069
  
// sj11 wird benötigt, um den Wochentag für den ersten Januar des geforderten Jahres zu ermitteln.

   sJ11.tm_sec=0;
   sJ11.tm_min=0;
   sJ11.tm_hour=12;
   sJ11.tm_mday=1;
   sJ11.tm_mon=0;  /* Jan.=0 ... Dez.=11) */
   sJ11.tm_year=iYear;
  
   sAktuell.tm_sec=0;
   sAktuell.tm_min=0;
   sAktuell.tm_hour=12;
   sAktuell.tm_mday=iDay;
   sAktuell.tm_mon=iMonth-1;  /* Jan.=0 ... Dez.=11) */
   sAktuell.tm_year=iYear;
  
   if(mktime(&sJ11)<(time_t)0) return(0);   /* Datum < 1.1.1970 oder > 5.2.2036 */
   if(mktime(&sAktuell)<(time_t)0) return(0); /* Datum < 1.1.1970 oder > 5.2.2036 */
   iWdJ11 = sJ11.tm_wday;  /* Son=0 ... Sa=6 */            
   iWdAktuell = sAktuell.tm_wday;  /* Son=0 ... Sa=6 */            
   lDiffDay=sAktuell.tm_yday; /* Tage seit 1.1. */
  




Ich hoffe das damit geholfen werden kann.

mfg
AS
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
28.05.2004, 16:42 Uhr
virtual
Sexiest Bit alive
(Operator)


www.fun-soft.de/showtopic.php?threadid=828
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: