Dag 1 van Weeknr x

Vraag en antwoord over FileMaker Pro 9

Dag 1 van Weeknr x

Berichtdoor eldeka » 11 aug 2009 11:02

Na een speurtocht op het Forum vind ik geen onderwerp dat een antwoord biedt op de volgende vraag.
Ik wil namelijk een functie maken die de Datum van de Eerste Dag van een bepaalde Week berekent met het Jaar en het Weeknr. als parameters.
Eigenlijk het omgekeerde van wat de functie WeekOfYear (Datum) doet.
Iemand een hint?
Avatar gebruiker
eldeka
 
Berichten: 139
Geregistreerd op: 11 jul 2004 10:35

Re: Dag 1 van Weeknr x

Berichtdoor andries » 11 aug 2009 11:18

ik ben er zeker van dat je hiervoor een custom function gaat vinden op www.fmcustomfunctions.com of op www.briandunning.com

anders kan dit je zeker al op weg helpen:

Code: Selecteer alles
Let (
[
  _weeknr = <<HIER KOMT WEEKNUMMER>>
; _year = <<HIER KOMT JAAR>>
; _FirstDayOfYear = GetAsDate ( "01/01/" & _year )
; _DayNumberFirstDay = DayOfWeek ( _FirstDayOfYear )
] ;

GetAsDate ( _FirstDayOfYear + 7 * _weeknr - _DayNumberFirstDay + 2 )

)


dit is niet getest, maar even uit de losse pols.
andries
FileMaker 9..14 Certified Developer
 
Berichten: 1303
Geregistreerd op: 15 feb 2008 14:09
Woonplaats: Boortmeerbeek

Re: Dag 1 van Weeknr x

Berichtdoor eroos » 11 aug 2009 16:48

Avatar gebruiker
eroos
 
Berichten: 320
Geregistreerd op: 12 maart 2007 16:42
Woonplaats: Rotterdam

Re: Dag 1 van Weeknr x

Berichtdoor eldeka » 11 aug 2009 17:12

OK - stof genoeg om mee aan het werk te gaan.
Hartelijk dank voor de vlugge reacties.
Ik geef later nog wel een feedback.
:D
Avatar gebruiker
eldeka
 
Berichten: 139
Geregistreerd op: 11 jul 2004 10:35

Re: Dag 1 van Weeknr x

Berichtdoor eldeka » 17 aug 2009 22:09

Rekening houdend met:
1) de eerste dag vd week = maandag en niet zondag;
2) weeknrs kunnen variëren van 1 tot 54;
3) de week nr 1 start op maandag als nieuwjaar valt op maandag, dinsdag, woensdag of donderdag; anders op maandag na nieuwjaar
ben ik tot de volgende oplossing gekomen.

Functie -> DagVanWeeknr ( Dagnr; Weeknr; Jaar )
Let
(
[
Nieuwjaar = GetAsDate ( "01/01/"& Jaar );
DagnrNieuwjaar = DayofWeek ( Nieuwjaar ) ;
Weekcorrectie = If (DagnrNieuwjaar > 5 ; 0 ; 1 );
//als nieuwjaar valt vrijdag, zaterdag of zondag dan worden de weeknrs met één week in de toekomst verplaatst
Dag = DagnrNieuwjaar - Dagnr - 1
//correctie van 1 dag om wij maandag als eerste dag van de week beschouwen
];
GetAsDate ( Nieuwjaar + 7 * ( Weeknr - Weekcorrectie ) - Dag )
)
Avatar gebruiker
eldeka
 
Berichten: 139
Geregistreerd op: 11 jul 2004 10:35

Re: Dag 1 van Weeknr x

Berichtdoor JeanWM » 18 aug 2009 16:42

Code: Selecteer alles
WeekNumber * 7 + Date(1, 1, Year(Status(CurrentDate))) - DayofWeek(Date(1, 1, Year(Status(CurrentDate))))


Zal altijd de zaterdag van een gegeven weeknr geven.

Het is dan maar zaak om de dagparameter af te trekken om een dag eerder in de week te hebben.
Avatar gebruiker
JeanWM
 
Berichten: 1844
Geregistreerd op: 25 jun 2002 07:38
Woonplaats: Ergens, op een kruising tussen tijd en ruimte


Keer terug naar FileMaker 9



Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers en 1 gast