/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Algoritme til beregning af ugedagen
Fra : Christian B. Andrese~


Dato : 28-10-02 13:04

Hej NG.

Er der nogen der ligger inde med en Ansi-C algoritme der kan beregne og
retunere ugedagen for en hvilken som helst dato fra fx. 1990 og frem ?

Lidt ala WEEKDAY("28/10/2002") i Excel.

--
mvh/regards

Christian
Old, but good: http://home.attbi.com/~n9ivo/whatswrong.swf



 
 
Morten F. Hansen (28-10-2002)
Kommentar
Fra : Morten F. Hansen


Dato : 28-10-02 13:50

"Christian B. Andresen" wrote:
> Er der nogen der ligger inde med en Ansi-C algoritme der kan beregne og
> retunere ugedagen for en hvilken som helst dato fra fx. 1990 og frem ?
> Lidt ala WEEKDAY("28/10/2002") i Excel.

Prøv at kigge på mktime() fra time.h

Den vil fylde ugedagen ud hvis man giver den dag, måned og år i den struct
den tager som input.



Christian B. Andrese~ (28-10-2002)
Kommentar
Fra : Christian B. Andrese~


Dato : 28-10-02 14:25


"Morten F. Hansen" <info@127.0.0.1> wrote in message
news:apjbps$g0o$1@sunsite.dk...
> "Christian B. Andresen" wrote:
> > Er der nogen der ligger inde med en Ansi-C algoritme der kan beregne og
> > retunere ugedagen for en hvilken som helst dato fra fx. 1990 og frem ?
> > Lidt ala WEEKDAY("28/10/2002") i Excel.
>
> Prøv at kigge på mktime() fra time.h
>
> Den vil fylde ugedagen ud hvis man giver den dag, måned og år i den struct
> den tager som input.
>

Hvor finder jeg time.h ?


--
mvh/regards

Christian
Old, but good: http://home.attbi.com/~n9ivo/whatswrong.swf



Morten F. Hansen (28-10-2002)
Kommentar
Fra : Morten F. Hansen


Dato : 28-10-02 14:43

"Christian B. Andresen" wrote:
> > > Er der nogen der ligger inde med en Ansi-C algoritme der kan beregne og
> > > retunere ugedagen for en hvilken som helst dato fra fx. 1990 og frem ?
> > > Lidt ala WEEKDAY("28/10/2002") i Excel.
> > Prøv at kigge på mktime() fra time.h
> > Den vil fylde ugedagen ud hvis man giver den dag, måned og år i den struct
> > den tager som input.
> Hvor finder jeg time.h ?

Hmm.. time.h er en del af Ansi-C, så det er bare at lave #include <time.h>.. Med
hensyn til dokumentation, kan du bruge http://msdn.microsoft.com hvis der ikke er
noget med din compiler.

mktime() bruges noglelunde som følger:

int GetWeekDay(int day, int month, int year)
{
struct tm time_s;
memset(&time_s, 0, sizeof(time_s));
time_s.tm_mday = day;
time_s.tm_mon = month - 1;
time_s.tm_year = year - 1900;
if (mktime(&time_s) == (time_t)-1)
return -1;
else
return time_s.tm_wday;
}

<day> skal være 1-31, <month> 1-12 og <year> er året f.eks. 2002

mktime() virker i intevallet 1/1/1970 - 19/1/2038

GetWeekDay() returnere -1 hvis mktime() fejlede ellers 0-6 (0 = søndag)

Hvis <day>, <month> eller <year> er uden for intervallet bliver de
"normaliseret". F.eks. den 32/11/2002 bliver lavet om til 1/12/2002 inden
ugedagen udregnes.

Har du brug for en mere generel algoritme, kan man også beregne det manuelt.
Det er ikke så svært -- det værste er at beregne om det er skud-år eller ej.



Christian B. Andrese~ (28-10-2002)
Kommentar
Fra : Christian B. Andrese~


Dato : 28-10-02 14:53


"Christian B. Andresen" <mailto:username@domain.country> wrote in message
news:3dbd3ac9$0$28829$edfadb0f@dspool01.news.tele.dk...
>
> Hvor finder jeg time.h ?

Jeg har fundet source kode til en mktime();


--
mvh/regards

Christian
Old, but good: http://home.attbi.com/~n9ivo/whatswrong.swf



Søg
Reklame
Statistik
Spørgsmål : 177500
Tips : 31968
Nyheder : 719565
Indlæg : 6408509
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste