Weeknummer uit datum berekenen

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

Acties:
  • 0 Henk 'm!

  • Invalid
  • Registratie: September 2001
  • Niet online
Weet iemand hoe je het weeknummer uit een datum (bijv. 05-01-1998) kunt berekenen?

Acties:
  • 0 Henk 'm!

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
MIsschien handig als je vertelt in welke taal, meeste talen gebruiken iets als datepart functie

Acties:
  • 0 Henk 'm!

  • sverzijl
  • Registratie: Januari 2001
  • Laatst online: 18:22
let er wel op dat mocht je een standaardfunctie gebruiken die tot je beschikking staat dat dit in 9 van de 10 gevallen de amerikaanse weeknummering is. De nederlandse weeknummering verschilt iets (week 52/53/1 bepaling)

Acties:
  • 0 Henk 'm!

  • Invalid
  • Registratie: September 2001
  • Niet online
De taal is epilog. Maar niemand buiten deze school werkt daarmee :). Maar gewoon een wiskundige formule is ook goed. Je kunt met epilog overigens wel dag, maand en jaar als getallen eruit halen om ermee te rekenen...

Acties:
  • 0 Henk 'm!

  • stok
  • Registratie: Oktober 2000
  • Niet online
Ik heb een tijd geleden ook geprobeert hetzelfde te doen, maar moest mijn pogingen staken ;(

Ik kan niet echt een manier vinden dit te doen.
Kheb wel een delphi voorbeeldje gevonden...
maar die URL ben ik kwijt.

Acties:
  • 0 Henk 'm!

  • Knutselsmurf
  • Registratie: December 2000
  • Laatst online: 17:42

Knutselsmurf

LED's make things better

Als je het aantal dagen tussen 2 data kan berekenen, is het weeknummer een kwestie van dit aantal dagen delen door 7 en afronden.

- This line is intentionally left blank -


Acties:
  • 0 Henk 'm!

  • sverzijl
  • Registratie: Januari 2001
  • Laatst online: 18:22
geen epilog (is dat zoiets als prolog?), wel een Lotus Notes formule. Die kan je vast wel herschrijven :
(Dit is voor zover ik weet wat in NL wordt toegepast)


REM "Formulae Calculate the Week Number(01-53) for any Date. ";
REM "The output follows the ISO 8601:1988 standard: ex 1997-W31-4 for
1997.07.31 ";
REM "Formulae writer : Nikolai Aasen (nsaa@pvv.org), UNI Storebrand,
Norway";
REM "Formulae written : 1997.07.30";
REM "Formulae updated : 1997.08.04";
REM "Version : 1.03";
REM "Tested on :Lotus Notes 4.6PreRelease2";
REM "This formulae is available in the";
REM "Lotus Notes FAQ: [url="http://www.keysolutions.com/NotesFAQ/";"]http://www.keysolutions.com/NotesFAQ/";[/url]
REM "More Calendar information in
[url="http://www.pip.dknet.dk/~pip10160/calendar.html";"]http://www.pip.dknet.dk/~pip10160/calendar.html";[/url]
REM "ISO 8601:1988 summary at:
[url="http://quake.stanford.edu/~lyle/ISOdate/Date.html";"]http://quake.stanford.edu/~lyle/ISOdate/Date.html";[/url]
REM
"--------------------------------------------------------------------------------------------------";

REM "Replace D with the date of interest.";
D := [1997.31.07];

REM "**************************";
REM"Calculate some data for this Year";
REM "**************************";
FirstOfYear := @Date(@Year(D); 1; 1);
LastOfYear := @Date(@Year(D); 12; 31);
FirstDayNum := @Weekday(FirstOfYear);
REM "ISO weeks start on Monday and ends on Sunday.";
ISOFirstDayNum := @If(FirstDayNum = 1; 7; FirstDayNum - 1);

REM " Week 1 of any year is the week that contains the first Thursday
in January.";
REM "=1 if 1. jan = man - thu. WeekNumber is then 1, else 0";
IsFirstWeek := 7- ISOFirstDayNum >2;

REM "The first Monday after 1. jan this Year";
FirstMonday := 9 - ISOFirstDayNum;

REM "Number of Days from 1. jan to D";
DaysToDateD:=(D-FirstOfYear)/60/60/24+1;

REM "Number of days in Year(either 365 or 366)";
DaysInYear:=(LastOfYear-FirstOfYear)/60/60/24;

REM "Number of Weeks in Year. Most years have 52 weeks, but years that
start on a
Thursday and leapyears that start on a Wednesday have 53 weeks.";
NumberOfWeeksThisYear:=@If( (ISOFirstDayNum=4 | (ISOFirstDayNum=3 &
DaysInYear=366));53;52 );

REM "***************************";
REM"Calculate some data for last Year ";
REM "***************************";
FirstOfLastYear := @Date(@Year(D)-1; 1; 1);
LastOfLastYear := @Date(@Year(D)-1; 12; 31);
FirstDayNumLast := @Weekday(FirstOfLastYear);
REM "ISO weeks start on Monday and ends on Sunday.";
ISOFirstDayNumLast := @If(FirstDayNumLast = 1; 7; FirstDayNumLast -
1);

REM "Number of days in Year(either 365 or 366)";
DaysInYearLast:=(LastOfLastYear-FirstOfLastYear)/60/60/24;

REM "Number of Weeks Last Year. Most years have 52 weeks, but years
that start on a
Thursday and leapyears that start on a Wednesday have 53 weeks.";
NumberOfWeeksLastYear:=@If( (ISOFirstDayNumLast=4 |
(ISOFirstDayNumLast =3 &
DaysInYearLast=366));53;52 );

REM "************************";
REM"Calculates the Week Number ";
REM "************************";


DDayNum := @Weekday(D);
ISODDayNum := @If(DDayNum = 1; 7; DDayNum - 1);

REM"Is D in the last Week of the last Year?";
DayInLastWeek := @If((DaysToDateD<FirstMonday & IsFirstWeek = 0);
@Return(
@Text(@Year(D)-1)+"-W"+@Text(NumberOfWeeksLastYear)+"-"+@Text(ISODDayNum));
NULL);

REM "Calculate number of Complete Weeks Between D and 1.jan";
ComplNumWeeks:=@Integer((DaysToDateD-FirstMonday)/7);

REM "Are there remaining days?";
RemainingDays:=@If( (DaysToDateD+1-(FirstMonday+7*ComplNumWeeks))>0);

NumWeeks:= IsFirstWeek+ComplNumWeeks+1;

Out :=
@If(RemainingDays;
@If( (NumWeeks>52 & NumWeeks>NumberOfWeeksThisYear );
@Return(@Text(@Year(D)+1)+"-W01-"+ @Text(ISODDayNum));

@Return(@Text(@Year(D))+"-W"+@Right("0"+@Text(NumWeeks);2)+"-"+@Text(ISODDayNum)));

@Return(@Text(@Year(D))+"-W"+@Right("0"+@Text(NumWeeks-1);2)
+"-"+@Text(ISODDayNum)));
Out

Acties:
  • 0 Henk 'm!

  • Banpei
  • Registratie: Juli 2001
  • Laatst online: 25-10-2022

Banpei

Hachiroku on this touge?

Alle verschillende formaten van berekening van weeknummer staan in M$ outlook (dus niet express) onder de opties van de kalender. Maar je kan ook gewoon goed zoeken bij Google en hierop uitkomen :(als eerste link!) Weeknummer berekenen >:)

AE86 gevonden! | So what I thought I'd do was, I'd pretend to be one of those deaf-mutes.


Acties:
  • 0 Henk 'm!

  • sverzijl
  • Registratie: Januari 2001
  • Laatst online: 18:22
Op donderdag 11 oktober 2001 14:31 schreef Knutselsmurf het volgende:
Als je het aantal dagen tussen 2 data kan berekenen, is het weeknummer een kwestie van dit aantal dagen delen door 7 en afronden.
zo simpel is het dus helaas niet.

Acties:
  • 0 Henk 'm!

  • Uiligheid
  • Registratie: December 2000
  • Laatst online: 17-03 17:12

Uiligheid

alle gekheid op een stokje

Sorry dat ik zo'n oud topic schop,
maar ik heb een hele goede link hiervoor gevonden, en ik denk dat het nogal een redelijk probleempje kan zijn. Ook ben ik ervan overtuigd, dat wil de search zijn waarde houden, dat er ook op oude topics gereageerd kan worden *D

http://personal.ecu.edu/mccartyr/ISOwdALG.txt

Ceterum censeo Carthaginem esse delendam


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 10:12

Janoz

Moderator Devschuur®

!litemod

Op vrijdag 03 mei 2002 12:13 schreef Uiligheid het volgende:
Sorry dat ik zo'n oud topic schop,
maar ik heb een hele goede link hiervoor gevonden, en ik denk dat het nogal een redelijk probleempje kan zijn. Ook ben ik ervan overtuigd, dat wil de search zijn waarde houden, dat er ook op oude topics gereageerd kan worden *D

http://personal.ecu.edu/mccartyr/ISOwdALG.txt
Daar zitten wel een paar fouten in.. Belangrijkste die ik zag was de schrikkeljaar berekening.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

Anoniem: 50813

2. Find if Y is LeapYear
if (Y % 4 = 0 and Y % 100 != 0) or Y % 400 = 0
then
Y is LeapYear
else
Y is not LeapYear

(waar % = modulus)

Wat is hier dan verkeerd aan? Zoals Uiligheid al meldde heeft het alleen zin om de search up to date te houden als er zinnige dingen worden gezegd. Geef dan in ieder geval aan wat er verkeerd is.

Acties:
  • 0 Henk 'm!

  • Blizard
  • Registratie: September 2001
  • Niet online
Misschien ben je hier iets mee
[topic=469029]

Week uit datum halen in vba ..
Pagina: 1