[PHP] Weeknummer 53

Pagina: 1
Acties:
  • 595 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • shlammod
  • Registratie: Juni 2001
  • Laatst online: 18-10-2024

shlammod

dus.... enzo....

Topicstarter
Hi,

Ik ben bezig met een eigen agendatje te programmeren en nu wilde ik ook weeknummers gaan weergeven. Nu zag ik tot mijn verbazing dat voor deze week bij mij week '1' wordt weergegeven, terwijl het toch echt week 53 is.

ik doe dit aan de hand van een variabele $start_date en date("W", $start_date);
ik heb ook al gmdate() geprobeerd maar dat maakte ook niet veel verschil.

Om nog eens te testen deed ik het volgende;

date("W", time() ) en ik kreeg hier wederom 1 uit tevoorschijn.
time gaf bij het proberen de volgende waarde; 1072712686

Heeft iemand hier een oplossing voor, of een schop in de juiste richting?
Ik kan niets aanpassen op de server wat betreft weergave van tijd of een andere versie van PHP installeren.

it's all fun and games, 'till someone loses an eye. Then it's just fun you can't see


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

shlammod schreef op 29 december 2003 @ 16:43:
Ik ben bezig met een eigen agendatje te programmeren en nu wilde ik ook weeknummers gaan weergeven. Nu zag ik tot mijn verbazing dat voor deze week bij mij week '1' wordt weergegeven, terwijl het toch echt week 53 is.
uh nee, we leven in week 1 hoor.
Zie ook [rml]curry684 in "[ PHP] iteratie van huidige week tot huid..."[/rml]

pas als 1 januari op een vrijdag of een zaterdag valt dan is er een week 53

[ Voor 8% gewijzigd door .oisyn op 29-12-2003 16:50 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • shlammod
  • Registratie: Juni 2001
  • Laatst online: 18-10-2024

shlammod

dus.... enzo....

Topicstarter
Dus als ik jou goed begrijp hebben we volgend jaar pas 53 weken?

it's all fun and games, 'till someone loses an eye. Then it's just fun you can't see


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

Dat is idd wat curry ook zei in de andere topic

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

er zijn meerdere manieren om het weeknummer te bepalen, de gregoriaanse kalender rekent de week waarvan ten minste 4 dagen in januari vallen als week 1, dus volgens die methode (ISO 8601) leven we nu in week 53.
Kijk eens naar strftime() en %V en %W

edit: stom, ik dacht dat het vrijdag pas 1 januari was 8)7 we zitten dus wel in week 1.
Doet niet af aan het feit dat er meerdere methoden zijn ;)

[ Voor 24% gewijzigd door crisp op 29-12-2003 16:53 ]

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

crisp: houd er rekening mee dat de week in ISO ook begint met tellen op maandag, waardoor er dus 4 dagen over zijn (do, vr, za, zo), en het dus week 1 is

[ Voor 5% gewijzigd door .oisyn op 29-12-2003 16:53 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • shlammod
  • Registratie: Juni 2001
  • Laatst online: 18-10-2024

shlammod

dus.... enzo....

Topicstarter
Hmm, misschien dat ik dan iets verkeerd doe, maar bij deze code:
strftime("%V", time()); komt er 01 uit en bij
strftime("%W", time()); kom er 52 uit :/ ??

[ Voor 10% gewijzigd door shlammod op 29-12-2003 16:53 ]

it's all fun and games, 'till someone loses an eye. Then it's just fun you can't see


Acties:
  • 0 Henk 'm!

  • LEiPiE
  • Registratie: Juni 2001
  • Laatst online: 20-09 11:03

LEiPiE

... (ing. van weinig woorden)

(jarig!)
shlammod schreef op 29 december 2003 @ 16:48:
Dus als ik jou goed begrijp hebben we volgend jaar pas 53 weken?
Zou kunnen, kan ik niet uitrekenen :)
Nee, het is erg simpel hoor: de week met 1 januari er in is week 1 :)
(want anders zou je nu een halve week een weeknummer geven en dan na 1 januari *dezelfde* week een ander nummer)

* LEiPiE bemoeit zich er ff mee omdat ie op z'n startpagina ook al week 1 zag staan en 't zich ook ff afvroeg of ie zich zo verslapen had :)

Ok, staat al een uitgebreidere uitleg (waarom tikken mensen altijd zo snel :))

[ Voor 10% gewijzigd door LEiPiE op 29-12-2003 16:53 ]

Papa x3, PHP-progger, Citrofiel, import-Tukker, muziekliefhebber


Acties:
  • 0 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 20:09

Dido

heforshe

crisp schreef op 29 december 2003 @ 16:50:
er zijn meerdere manieren om het weeknummer te bepalen, de gregoriaanse kalender rekent de week waarvan ten minste 4 dagen in januari vallen als week 1, dus volgens die methode (ISO 8601) leven we nu in week 53.
Kijk eens naar strftime() en %V en %W
In welk jaar vallen bij jou komende donderdag, vrijdag, zaterdag en zondag dan :?
Dit is dan toch echt week 1 volgens ISO 8601 lijkt me :P

/edit: spuit 11 :+

[ Voor 3% gewijzigd door Dido op 29-12-2003 16:54 ]

Wat betekent mijn avatar?


Acties:
  • 0 Henk 'm!

  • shlammod
  • Registratie: Juni 2001
  • Laatst online: 18-10-2024

shlammod

dus.... enzo....

Topicstarter
Thanx, ik zal de mensen wie mij dat hebben wijsgemaakt eens wat geld gaan terug vragen ;)

it's all fun and games, 'till someone loses an eye. Then it's just fun you can't see


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

shlammod schreef op 29 december 2003 @ 16:52:
Hmm, misschien dat ik dan iets verkeerd doe, maar bij deze code:
strftime("%V", time()); komt er 01 uit en bij
strftime("%W", time()); kom er 52 uit :/ ??
en probeer nu eens %U

[quote=http://www.php.net/strftime]
  • %U - week number of the current year as a decimal number, starting with the first Sunday as the first day of the first week
  • %V - The ISO 8601:1988 week number of the current year as a decimal number, range 01 to 53, where week 1 is the first week that has at least 4 days in the current year, and with Monday as the first day of the week. (Use %G or %g for the year component that corresponds to the week number for the specified timestamp.)
  • %W - week number of the current year as a decimal number, starting with the first Monday as the first day of the first week

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Dido schreef op 29 december 2003 @ 16:53:
[...]

In welk jaar vallen bij jou komende donderdag, vrijdag, zaterdag en zondag dan :?
Dit is dan toch echt week 1 volgens ISO 8601 lijkt me :P
Zie mijn edit, ik was in de veronderstelling dat het vrijdag pas 1 januari was 8)7
leipie schreef op 29 december 2003 @ 16:52:
[...]


Zou kunnen, kan ik niet uitrekenen :)
Nee, het is erg simpel hoor: de week met 1 januari er in is week 1 :)
(want anders zou je nu een halve week een weeknummer geven en dan na 1 januari *dezelfde* week een ander nummer)
[...]
Dat is een andere methode die meen ik in o.a. Amerika gebruikt wordt, maar dat weet ik niet zeker...

[ Voor 3% gewijzigd door crisp op 29-12-2003 16:56 ]

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • shlammod
  • Registratie: Juni 2001
  • Laatst online: 18-10-2024

shlammod

dus.... enzo....

Topicstarter
@ .oisyn -> Bij %U komt er ook 52 uit.

it's all fun and games, 'till someone loses an eye. Then it's just fun you can't see


Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

shlammod:
@ .oisyn -> Bij %U komt er ook 52 uit.
Ik denk dat je moet accepteren dat dit jaar dan inderdaad maar 52 weken heeft :z

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

leipie schreef op 29 december 2003 @ 16:52:
(want anders zou je nu een halve week een weeknummer geven en dan na 1 januari *dezelfde* week een ander nummer)
Hoe kom je daar nou weer bij? Als dit week 53 zou zijn dan zou 1 januari ook in week 53 vallen, en niet ineens in week 1. De 53 kan dus voorbij de jaarwisseling lopen, net zoals week 1 in jouw voorbeeld al voor de jaarwisseling in kan gaan

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • shlammod
  • Registratie: Juni 2001
  • Laatst online: 18-10-2024

shlammod

dus.... enzo....

Topicstarter
Ik heb het ook even met het volgende geprobeerd;

echo date("W", mktime (0,0,0,12,29,2003));

Deze geeft wel 53 terug.... ;) (voor de schieuwnierigen onder ons)

it's all fun and games, 'till someone loses an eye. Then it's just fun you can't see


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

Hmmm, dat lijkt me een bug
W: ISO-8601 week number of year, weeks starting on Monday (added in PHP 4.1.0)
en
%V - The ISO 8601:1988 week number of the current year as a decimal number, range 01 to 53, where week 1 is the first week that has at least 4 days in the current year, and with Monday as the first day of the week. (Use %G or %g for the year component that corresponds to the week number for the specified timestamp.)
beide retourneren dus het ISO 8601 weeknummer, en het resultaat zou dan ook hetzelfde moeten zijn

De output van strftime () lijkt me de correcte (is het ook, maar dat even terzijde), aangezien ik meer vertrouwen heb in de geïmplementeerde C library (php's strftime wrapt gewoon de strftime van C) dan php :+

[ Voor 15% gewijzigd door .oisyn op 29-12-2003 17:08 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

shlammod schreef op 29 december 2003 @ 17:02:
Ik heb het ook even met het volgende geprobeerd;

echo date("W", mktime (0,0,0,12,29,2003));

Deze geeft wel 53 terug.... ;) (voor de schieuwnierigen onder ons)
hier niet hoor :?

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • ravenger
  • Registratie: Juli 2001
  • Laatst online: 20-09 17:03
mwa over het algemeen is het zo dat de week waarin 1 januari valt ook als week 1 wordt gezien. week 53 kan zo ook nooit voorkomen, want 365/52 geeft een getal nagenoeg 7 (dagen in een week).

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

Zoals hier weergegeven is jouw "algemene" stelling toch niet zo algemeen als je zou denken :Y)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

Verwijderd

Het lijkt per machine te verschillen.
date("W") geeft op de ene machine week 1 voor 29-12-2003
Op een andere machine week 53 :?

Wel raar dat een week dan maar 3 dagen telt.
Hij geeft voor 29 tm 31 week 53

Echt vreemd...

Acties:
  • 0 Henk 'm!

  • Riegstar
  • Registratie: Februari 2003
  • Niet online

Riegstar

Wadapatja!

Ook hier hebben we een discussie over de welke-week-is-week1-vraag.

Acties:
  • 0 Henk 'm!

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

Riegstar schreef op 05 januari 2004 @ 12:27:
Ook hier hebben we een discussie over de welke-week-is-week1-vraag.
Er is alleen nogal weinig discussie over mogelijk.

Zelfs wat .oisyn zegt over dat in de VS een andere methode gebruikt wordt klopt niet: het oer-Amerikaanse Outlook is, of je het nu wilt of niet, de internationale standaard voor agendabeheer, en installeert zich default in ieder land met als setting dat de eerste week met 4 dagen van een jaar week 1 is. Setting terug te vinden in Tools->Options->Calendar Options.

ISO is ook niet voor niets de International Standards Organization, die in tegenstelling tot ANSI (American National Standards Institute) wel wereldwijd uniform geldende standaarden mag definieren. Dus als ISO stelt dat de weeknummering inhoudt dat 2003 tot week 52 liep, en 2004 wel een week 53 gaat hebben, moet je dat gewoon geloven en niet zeiken ;)

Professionele website nodig?


Acties:
  • 0 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 20:09

Dido

heforshe

curry684 schreef op 05 januari 2004 @ 12:40:
Zelfs wat .oisyn zegt over dat in de VS een andere methode gebruikt wordt klopt niet: het oer-Amerikaanse Outlook is, of je het nu wilt of niet, de internationale standaard voor agendabeheer, en installeert zich default in ieder land met als setting dat de eerste week met 4 dagen van een jaar week 1 is. Setting terug te vinden in Tools->Options->Calendar Options.
Blijft alleen die rare afwijking van die yanks om de week op zondag te laten beginnen, waardoor je dus wel een week 53 krijgt :P

Wat betekent mijn avatar?


Acties:
  • 0 Henk 'm!

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

Dido schreef op 05 januari 2004 @ 12:41:
[...]

Blijft alleen die rare afwijking van die yanks om de week op zondag te laten beginnen, waardoor je dus wel een week 53 krijgt :P
Gelukkig houdt defaultinstelling Outlook zich ook aan ISO, en moeten ze dus bewust de settings gaan vern**ken om dat effect voor mekaar te krijgen :)

Professionele website nodig?


Acties:
  • 0 Henk 'm!

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
curry684 schreef op 05 januari 2004 @ 12:40:
[...]

Er is alleen nogal weinig discussie over mogelijk.

Zelfs wat .oisyn zegt over dat in de VS een andere methode gebruikt wordt klopt niet: het oer-Amerikaanse Outlook is, of je het nu wilt of niet, de internationale standaard voor agendabeheer, en installeert zich default in ieder land met als setting dat de eerste week met 4 dagen van een jaar week 1 is. Setting terug te vinden in Tools->Options->Calendar Options.
Maar het maakt dan wel uit wat je als 1e dag van de week hanteert. Daar zou discussie, of op zijn minst onduidelijkheid over kunnen zijn. Wij gebruikten altijd zondag als dag 1 maar het blijkt nu dat zondag dag 7 is (volgens de ISO normen)

Oops! Google Chrome could not find www.rijks%20museum.nl


Acties:
  • 0 Henk 'm!

Verwijderd

Ik ben daar ook eens heel erg mee bezig geweest en het is en blijft een wazig iets.
Dat van die gregoriaanse kalender, daar slaat men de spijker op zn kop.
Wij gebruiken hier inderdaad de gregoriaanse en wat blijkt, het is zelfs mogelijk 54 weken te krijgen op deze manier ( ik d8 over iest van 8 of 9 jaar!).

Er zijn verschillende problemen die moeten worden overbrugd (zoals schrikkeljaren -> nodig om een paar dagen per 1000 jaar te overbruggen) maar er is 1 duidelijke (ISO) stelling in deze: De weken beginnen altijd op een maandag 4 januari ( de eerste donderdag van het jaar) valt ALTIJD in week 1 en de 28 december valt ALTIJD in de laatste week van het oude jaar. Als je die 2 dagen als leidraad gebruikt om je weeknummer te bepalen zit je altijd goed!

[ Voor 8% gewijzigd door Verwijderd op 05-01-2004 13:59 ]


Acties:
  • 0 Henk 'm!

  • Riegstar
  • Registratie: Februari 2003
  • Niet online

Riegstar

Wadapatja!

Kan wel zo zijn... Maar in Nederland begint de week toch op zondag!!

Acties:
  • 0 Henk 'm!

Verwijderd

Klopt !!

Maar als je programma's maakt voor in de zorgsector bijvoorbeeld dan begint bij hun de week op maandag, dus ook de registratie begint op maandag, dus stem je ook de programma's af op maandag....vandaar....

Maar het is zoals ik al zei een wazige materie. Dit blijkt wel als je 'in de winkel' de verschillende agenda's bekijkt. Sommigen beginnen de week op zondag, anderen op maandag :? (MIJN AGENDA BEGINT DE WEEK DUS OP MAANDAG!)

[ Voor 20% gewijzigd door Verwijderd op 05-01-2004 14:14 ]


Acties:
  • 0 Henk 'm!

  • Riegstar
  • Registratie: Februari 2003
  • Niet online

Riegstar

Wadapatja!

2001, 2002 en 2003 geen last van dit probleem.

Zo zie je maar 1 en al verwarring.

Acties:
  • 0 Henk 'm!

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

Verwijderd schreef op 05 januari 2004 @ 13:58:
het is zelfs mogelijk 54 weken te krijgen op deze manier ( ik d8 over iest van 8 of 9 jaar!).
Kun je me dit even langzaam uitleggen? :?

Zoals ik in [rml]curry684 in "[ PHP] iteratie van huidige week tot huid..."[/rml] vertelde is de zoveel-jaarse week 53 puur een afronding omdat er natuurkundig/astronomisch 52,1785714 weken in een jaar zitten. Hoe wil je dat naar 54 afronden? :?

Professionele website nodig?


Acties:
  • 0 Henk 'm!

  • Rataplan
  • Registratie: Oktober 2001
  • Niet online

Rataplan

per aspera ad astra

curry684 schreef op 05 januari 2004 @ 14:38:
Kun je me dit even langzaam uitleggen? :?
Lees maar langzaam, ik heb dat typediploma niet voor niks gehaald :Y)

Als je een schrikkeljaar hebt waarbij week 1 op 2 januari begint, eindigt week 52 op 30 december. Los van hoe elke week genoemd wordt en bij welk jaar de week zou horen: je hebt dan 54 verschillende weeknummers in 1 kalenderjaar.

Weeknummer 54 zal nooit voorkomen, maar 54 weken wel; eens in de dertig jaar of zo. Heb het ooit wel eens nagerekend, maar ga dat hier lekker niet herhalen :)

edit:
1 januari 2012 valt idd op een zondag :)

[ Voor 7% gewijzigd door Rataplan op 05-01-2004 15:10 ]


Journalism is printing what someone else does not want printed; everything else is public relations.


Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Rataplan:
Weeknummer 54 zal nooit voorkomen, maar 54 weken wel; eens in de dertig jaar of zo. Heb het ooit wel eens nagerekend, maar ga dat hier lekker niet herhalen :)
Een schrikkeljaar dat begint op zaterdag dus. 366 % 52 = 2, namelijk :Y) (provided dat je vindt dat een week op zondag begint).

Bevatten is dus een groot woord ;)

code:
1
2
3
4
             | 52 weken ->   |
    |zaterdag|zondag ....... |zondag|
    \_______________________________/
             jaar met 366 dagen

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

  • Rataplan
  • Registratie: Oktober 2001
  • Niet online

Rataplan

per aspera ad astra

drm schreef op 05 januari 2004 @ 15:13:
Bevatten is dus een groot woord ;)
Dat valt nog te bezien. In januari 2013 (provided dat je vindt dat een week op een maandag begint ;)) gaan heel wat directeuren een omzetgrafiek per week over het voorafgaande jaar vragen - en als er omzet op 1 januari en 31 december is geboekt, sluiten grafieken met 52 of 53 kolommen niet aan op de jaarcijfers. En daar gaan klachten over komen, mark my words :)


Journalism is printing what someone else does not want printed; everything else is public relations.


Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

curry684 schreef op 05 januari 2004 @ 12:40:
ISO is ook niet voor niets de International Standards Organization
Als dit dan toch een muggenzift topic is :+
-->
Because "International Organization for Standardization" would have different abbreviations in different languages ("IOS" in English, "OIN" in French for Organisation internationale de normalisation), it was decided at the outset to use a word derived from the Greek isos, meaning "equal". Therefore, whatever the country, whatever the language, the short form of the organization's name is always ISO.

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
shlammod schreef op 29 december 2003 @ 17:02:
Ik heb het ook even met het volgende geprobeerd;

echo date("W", mktime (0,0,0,12,29,2003));

Deze geeft wel 53 terug.... ;) (voor de schieuwnierigen onder ons)
Het is al weer even geleden, maar ik dacht: zal die arme shlammod nog even bijstaan zodat ie niet denkt dat ie gek is. Dit ligt er gewoon aan dat je een oudere PHP versie hebt. Pas na 4.1 (geloof ik) zijn ze op de ISO standaard overgegaan.

Acties:
  • 0 Henk 'm!

Verwijderd

Perfecto uitgelegd Rataplan....

Zo zit het precies in elkaar.

Acties:
  • 0 Henk 'm!

Verwijderd

voor de geïnteresseerden onder ons..... in VB ::: sorry ;)

Function WeekNumber(InDate As Date) As Integer
Dim DayNo As Integer
Dim StartDays As Integer
Dim StopDays As Integer
Dim StartDay As Integer
Dim StopDay As Integer
Dim VNumber As Integer
Dim ThurFlag As Boolean

DayNo = Days(InDate)
StartDay = Weekday(DateSerial(Year(InDate), 1, 1)) - 1
StopDay = Weekday(DateSerial(Year(InDate), 12, 31)) - 1
' Aantal dagen behorende bij de eerste kalenderweek
StartDays = 7 - (StartDay - 1)
' Aantal dagen behorende bij de laatste kalenderweek
StopDays = 7 - (StopDay - 1)
' Test om te controleren of het jaar 53 weken heeft of niet
If StartDay = 4 Or StopDay = 4 Then ThurFlag = True Else ThurFlag = False
VNumber = (DayNo - StartDays - 4) / 7
'als de eerste week 4 dagen of meer heeft IS het week 1
'als de eerste week minder dan 4 dagen heeft behoort hij tot het afgelopen jaar
'de laatste kalenderweek daarvan
If StartDays >= 4 Then
WeekNumber = Fix(VNumber) + 2
Else
WeekNumber = Fix(VNumber) + 1
End If
'behandel jaren waarin de laatse dagen behoren tot het daaropvolgende jaar's eerste
'kalenderweek
If WeekNumber > 52 And ThurFlag = False Then WeekNumber = 1
'behandel jaren waarvan de eerste dagen behoren bij het afgelopen jaar's laatse
'kalenderweek
If WeekNumber = 0 Then
WeekNumber = WeekNumber(DateSerial(Year(InDate) - 1, 12, 31))
End If
End Function

Function Days(DayNo As Date) As Integer
Days = DayNo - DateSerial(Year(DayNo), 1, 0)
End Function

Acties:
  • 0 Henk 'm!

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09 23:18

djc

marty schreef op 05 januari 2004 @ 15:44:
Het is al weer even geleden, maar ik dacht: zal die arme shlammod nog even bijstaan zodat ie niet denkt dat ie gek is. Dit ligt er gewoon aan dat je een oudere PHP versie hebt. Pas na 4.1 (geloof ik) zijn ze op de ISO standaard overgegaan.
Ha, dat verklaart het. In mijn persoonlijke agenda (in PHP geschreven) staat ook 53, maar dat is op mijn host waar nog 4.1.2 draait. Op mijn eigen bak staat er wel 1. Gelukkig maakt het niet zoveel uit, want pas vanaf week 2 zijn er weer colleges (en moet het dus gelijk lopen met de nummering die de uni gebruikt!).

Rustacean


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

hier een algoritme in javascript:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function _getWeek() {

  var d = new Date(this);
  var DoW = d.getDay();
  d.setDate(d.getDate() - (DoW+6)%7 + 3); // Nearest Thu
  var ms = d.valueOf(); // GMT
  d.setMonth(0); d.setDate(4); // Thu in Week 1
  var WN = Math.round((ms - d.valueOf()) / 6048e5) + 1;
  return WN;

}
Date.prototype.getWeek = _getWeek;

var date = new Date(); // today
alert(date.getWeek());

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

curry684 schreef op 05 januari 2004 @ 12:40:
[...]

Er is alleen nogal weinig discussie over mogelijk.

Zelfs wat .oisyn zegt over dat in de VS
doe eens goed lezen jij, ik heb niets gezegd over de VS ;)
ISO is ook niet voor niets de International Standards Organization, die in tegenstelling tot ANSI (American National Standards Institute) wel wereldwijd uniform geldende standaarden mag definieren. Dus als ISO stelt dat de weeknummering inhoudt dat 2003 tot week 52 liep, en 2004 wel een week 53 gaat hebben, moet je dat gewoon geloven en niet zeiken ;)
dat de ISO dat zegt zegt nog niets. In nederland gebruiken we native gewoon een ietwat ander systeem, bijvoorbeeld dat weken beginnen op zondag. En zo heeft elk land zijn eigen tradities, en daar heeft de ISO weinig mee te maken

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

.oisyn schreef op 05 januari 2004 @ 19:43:
[...]
doe eens goed lezen jij, ik heb niets gezegd over de VS ;)
Whatever ;)
dat de ISO dat zegt zegt nog niets. In nederland gebruiken we native gewoon een ietwat ander systeem, bijvoorbeeld dat weken beginnen op zondag. En zo heeft elk land zijn eigen tradities, en daar heeft de ISO weinig mee te maken
Ik vond het een verrassende opmerking toen ik in dit topic ergens las dat in Nederland weken beginnen op een zondag. Ik kan me namelijk niet herinneren dat ik dat ooit ergens heb gezien in 25 jaar agenda's kopen, werkplanningen en urenschema's maken, softwaredevelopment met kalenderfunctionaliteiten e.d.

Ik ben best benieuwd naar een 'officiele' onderbouwing dat Nederland zo'n systeem zou kennen, wat me uberhaupt sterk lijkt in een klassiek streng gelovig gebied (en op de 7e dag had God rust toch...? :? ). Daarnaast slaat de term 'weekeinde' nergens op als de helft van die periode aan het begin van de week valt ;)

Wordt bijna een Wetenschap & Levensbeschouwing-topic zo :P

Professionele website nodig?


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

Ok, ik moet toegeven dat mijn enige onderbouwing dat in nederland de week op zondag begint is dat ik dat zo op de basisschool geleerd heb :Y)

Maar de rest van mijn punt blijft van kracht :P

.edit: hieruit blijkt overigens wel dat ik gelijk had :7. Zondag was namelijk niet de rustdag, maar zaterdag (het joodse sabbat valt tegenwoordig nog steeds op zaterdag)

[ Voor 38% gewijzigd door .oisyn op 05-01-2004 21:25 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

.oisyn:
Ok, ik moet toegeven dat mijn enige onderbouwing dat in nederland de week op zondag begint is dat ik dat zo op de basisschool geleerd heb :Y)
Ik ook. Wat hier staat heb ik ook op die manier meegekregen :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

  • Shakespeare2000
  • Registratie: September 2002
  • Laatst online: 20-09 13:55
curry684 schreef op 05 januari 2004 @ 21:16:

[...]

Ik vond het een verrassende opmerking toen ik in dit topic ergens las dat in Nederland weken beginnen op een zondag. Ik kan me namelijk niet herinneren dat ik dat ooit ergens heb gezien in 25 jaar agenda's kopen, werkplanningen en urenschema's maken, softwaredevelopment met kalenderfunctionaliteiten e.d.

[...]
Nog nooit een kalender gezien met zondag als eerste dag van de week? Loop eens tegen oudjaar langs de Rabobank en vraag eens een kalender... tada zondag als eerste dag!

The whole thing is based on respect, respect to the music, respect to the DJ's,
respect to the crowd and respect to one another!


Acties:
  • 0 Henk 'm!

  • Rene59
  • Registratie: April 2000
  • Laatst online: 07-07-2024
Verwijderd schreef op maandag 05 januari 2004 @ 15:56:
voor de geïnteresseerden onder ons..... in VB ::: sorry ;)
Mijn dank is groot :)

Acties:
  • 0 Henk 'm!

Verwijderd

edit.... Veels te laat gezien dat het om een heeeeeeeeeeeeel oude posting ging

[ Voor 82% gewijzigd door Verwijderd op 03-01-2005 10:59 ]

Pagina: 1