WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Skottårs bugg? (https://www.wn.se/forum/showthread.php?t=1554)

Robert 2004-02-17 15:55

Fick se att en web jag har gjort har "skottårs bugg" i en kalenderfunktion även då den använder IIS 6.0 och dess datumfunktioner. Såg även att ett forum jag ofta besöker (PHP) har denna bugg....

Så jag undrar: har ni kollat era rutiner så de fungerar med skottår? (ja, det är ju denna månad som har 1 dag extra, nämligen den 29:e...).

Själv orkar jag inte rätta denna bugg då den "bara" dyker upp 1 gång var 4:e år....förhoppningsvis så är detta system skrotat då... B)

Marcus 2004-02-17 20:08

är väl inte direkt svårt att kolla om det är skottår eller ej?
[ året jämnt delbart med fyra == skottår ]
ex.vis:
2004/4=501 [501==heltal; alltså skottår]

fast det var kanske något annat du tänkte på?

Robert 2004-02-17 21:19

Nja, det är ju inte svårt, det var inte det jag menade. Jag bara undrade om alla har med skottår i sina beräkningar, så inte tex orderläggningar etc förlorar en dag, eller att systemet får tuppjuck om det är multi tier där båda skikt har en datumfunktion och dessa kommer att missmatcha den 29:e....


Grejjen var att jag använder en inbyggd datumfunktion som bör veta om det är skottår eller ej...så det finns kanske andra system därute som hanterar detta felaktigt

zmodem 2004-02-18 14:52

Citat:

Originally posted by marcuss@Feb 17 2004, 18:08
är väl inte direkt svårt att kolla om det är skottår eller ej?
[ året jämnt delbart med fyra == skottår ]
ex.vis:
2004/4=501 [501==heltal; alltså skottår]

riktigt så enkelt är det väl nu inte...
skottår är det de år som är jämnt delbara med fyra (t.ex. 2004) utom vid sekelskiften som inte är jämnt delbara med 400.

Alltså: 2004 = skottår
1900 = inte skottår
2000 = skottår


själv använder jag Perls inbygda funktioner för datum och tid (som i sin tur bygger på standardfunktionerna i C-biblioteket) och liter på att den har koll på skottåren.

Men det blir problem sedan (tror det var typ år 2034) när antalet sekunder sedan 1970 inte längre får plats i en 32-bit unsigned integer. Det blir ju lite spännande...

Lundmark 2004-02-18 15:07

Man kan ju dela 2000 med 4 och få 500, alltså ett heltal, eller vad menar du?

erzki 2004-02-18 16:06

isLeapYear ASP

Marcus 2004-02-18 16:38

Citat:

Originally posted by zmodem@Feb 18 2004, 12:52
riktigt så enkelt är det väl nu inte...
skottår är det de år som är jämnt delbara med fyra (t.ex. 2004) utom vid sekelskiften som inte är jämnt delbara med 400.

Alltså: 2004 = skottår
1900 = inte skottår
2000 = skottår

okej, har man planer på att programmet ska hålla i 100 år från nu så kan det bli problem. visst.

och det är kanske fel att inte ha en heltäckande lösning. men det är ju lite skillnad på 20 år (~1980 till milleniumbuggen) och 100 år som nu är fallet, dvs år 2100.

...annars är ju lösningen precis sådär enkel just för att vi nyligen passerat ett årtusende OCH århundrade. :)

Anders 2004-02-18 18:15

Citat:

Originally posted by zmodem@Feb 18 2004, 11:52
Men det blir problem sedan (tror det var typ år 2034) när antalet sekunder sedan 1970 inte längre får plats i en 32-bit unsigned integer. Det blir ju lite spännande...
Jag tror vi klarar oss. Tror du inte vi kör 64-bitars då? :)

zmodem 2004-02-18 18:47

Citat:

Originally posted by lunne82@Feb 18 2004, 16:15
Jag tror vi klarar oss. Tror du inte vi kör 64-bitars då? :)
Jo men va fasen, då måste jag programmera om min hemsida jue :P

Anders 2004-02-18 20:42

Citat:

Ursprungligen postat av zmodem
Citat:

Ursprungligen postat av lunne82
Jag tror vi klarar oss. Tror du inte vi kör 64-bitars då? :)

Jo men va fasen, då måste jag programmera om min hemsida jue :P

Borde du ju inte behöva, du sa ju:
"själv använder jag Perls inbygda funktioner för datum och tid (som i sin tur bygger på standardfunktionerna i C-biblioteket) och liter på att den har koll på skottåren."
I så fall kommer ju allt funka bra, eller finns det fler begränsningar?

zmodem 2004-02-18 21:37

Citat:

Originally posted by lunne82@Feb 18 2004, 18:42
Borde du ju inte behöva, du sa ju:
"själv använder jag Perls inbygda funktioner för datum och tid (som i sin tur bygger på standardfunktionerna i C-biblioteket) och liter på att den har koll på skottåren."
I så fall kommer ju allt funka bra, eller finns det fler begränsningar?

Njo, problemet är när jag vill lagra det någonannastans, t.ex. i en databas eller fil, för som det är nu lagras de som 32-bitars heltal, och då kan jag ju inte börja skriva 64-bitars variabler i filer som förväntar sig 32-bitars och samma sak med databasen.... det blir klyddigt helt klart, men antagligen har jag väl programmerat om allting till dess, så...

K-Fluffie 2004-03-01 03:42

Citat:

Originally posted by DipBox@Feb 18 2004, 13:07
Man kan ju dela 2000 med 4 och få 500, alltså ett heltal, eller vad menar du?
"Skottår infaller vart fjärde år med undentag för årtal jämnt delbara med 100. Dock är årtal jämnt delbara med 400 skottår."

HTTP://www.susning.nu/skott%e5r


Alla tider är GMT +2. Klockan är nu 05:14.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson