Toon posts:

[VB6]Week van het jaar uit een datum halen?

Pagina: 1
Acties:

Verwijderd

Topicstarter
de naam zegt het ongeveer zelf, ik moet de kalenderweek ( 1 - 52 ) uit een datum halen. Nu vind ik NERGENS hoe dat zou moeten en ik kan moeilijk geloven dat hier geen enkele functie voor bestaat.

  • Chimera
  • Registratie: December 2001
  • Laatst online: 17-07 11:24
Misschien kan jij of iemand anders dit wel ff vertalen, maar dit heb ik toevallig net gevonden op een Delphi forum. Dit is dus pascal:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
function WeekNumber( ADay: TDateTime): Integer;
var
 Year, Month, Day: Word;
 WeekDay : integer;
 DumDay: TDateTime;
 diff, diff2: integer;
begin
   DumDay:= ADay;
   DecodeDate(DumDay, Year, Month, Day);
   DumDay:= EncodeDate( Year, 1, 1); { first day of year }
   WeekDay:= DayOfWeek(DumDay);
   if (WeekDay < 6) and (Weekday > 1) then { monday -> thursday }
     DumDay:= DumDay - WeekDay + 2
   else
   begin
     if WeekDay > 5 then
     DumDay:= DumDay - WeekDay + 9;
     if WeekDay = 1 then
     DumDay:= DumDay + 1;
   end; { DumDay points to monday in week number one }
   diff:= Trunc( ADay - DumDay);
   if diff < 0 then
   begin
     Result:= WeekNumber(ADay - 7) + 1; { last week of previous year }
     Exit;
   end;
   DumDay:= EncodeDate( Year, 12, 31); { last day of year }
   WeekDay:= DayOfWeek(DumDay);
   diff2:= Trunc(DumDay - ADay);
   if (diff2 < 3) and { one of last three days of year }
    (WeekDay > 1) and (WeekDay < 5) and { monday -> wednesday }
    (WeekDay > diff2 + 1) then
   begin
     Result:= 1; { first week of next year }
     Exit;
   end;
   result:= diff div 7 + 1;
end;

[16:19] <WhizzCat> de zon heeft nog maar 5 miljard jaar te leven naar het schijnt
[16:19] <WhizzCat> dus schiet op met dat protocol Chimera :p


Verwijderd

Topicstarter
Ken spijtig genoeg niets van delphi :(

Verwijderd

Kijk eens op www.pscode.com Ik durf te wedden dat het daar wel te vinden is.

Was hier vorige week niet ook al een topic over :? Of was dat ook van jou, Sliv?

Verwijderd

Op zondag 05 mei 2002 16:57 schreef KoenM het volgende:
Kijk eens op www.pscode.com Ik durf te wedden dat het daar wel te vinden is.
Ik weet ook zeker dat 't in de vbmanual staat,de functie heet DatePart.

  • Pooh
  • Registratie: April 2001
  • Niet online

Pooh

Lees eens een boek

In [ISO8601], the week number is defined by:

- weeks start on a monday
- week 1 of a given year is the one that includes the first Thursday of that year. (or, equivalently, week 1 is the week that includes 4 January.)
Zie verder: http://utopia.knoware.nl/~ocorten/timex/wkcalc.htm

De rest kun je zelf wel denk ik?
Pagina: 1