firstworkdate - skript- och diagramfunktion
Funktionen firstworkdate returnerar senast möjliga startdatum för att uppnå no_of_workdays (måndag–fredag) som tar slut senast end_date med hänsyn till alla eventuella helgdagar. end_date och holiday ska vara giltiga datum eller tidsmarkörer.
Syntax:
firstworkdate(end_date, no_of_workdays [, holiday] )
Typ av returdata: heltal
Argument:
Argument | Beskrivning |
---|---|
end_date | Tidsmarkör för det slutdatum som ska utvärderas. |
no_of_workdays | Antalet arbetsdagar som ska uppnås. |
holiday |
Ledighetsperioder som ska undantas från arbetsdagar. En ledighetsperiod anges som ett startdatum och ett slutdatum, avgränsade med kommatecken. Exempel: '25/12/2013', '26/12/2013' Du kan undanta fler än en ledighetsperiod, avgränsade med kommatecken. Exempel: '25/12/2013', '26/12/2013', '31/12/2013', '01/01/2014' |
Exempel och resultat:
I de här exemplen används datumformatet DD/MM/YYYY. Datumformatet anges i SET DateFormat-satsen längst upp i laddningsskriptet. Ändra formatet i exemplen så att det passar dina krav.
Exempel 1:
firstworkdate ('29/12/2014', 9)
Returnerar 17/12/2014.
Exempel 2:
firstworkdate ('29/12/2014', 9, '25/12/2014', '26/12/2014')
Returnerar 15/12/2014 eftersom en ledighetsperiod på två dagar räknas in.
Exempel 3:
Lägg till exempelskriptet i dokumentet och kör det. Lägg sedan till åtminstone de fält som listas i resultatkolumnen på ett ark i dokumentet för att se resultatet.
ProjectTable:
LOAD *, recno() as InvID INLINE [
EndDate
28/03/2015
10/12/2015
5/2/2016
31/3/2016
19/5/2016
15/9/2016
] ;
NrDays:
Load *,
FirstWorkDate(EndDate,120) As StartDate
Resident ProjectTable;
Drop table ProjectTable;
Den resulterande tabellen visar de returnerade värdena för FirstWorkDate för varje post i tabellen.
InvID | EndDate | StartDate |
---|---|---|
1 | 28/03/2015 | 13/10/2014 |
2 | 10/12/2015 | 26/06/2015 |
3 | 5/2/2016 | 24/08/2015 |
4 | 31/3/2016 | 16/10/2015 |
5 | 19/5/2016 | 04/12/2015 |
6 | 15/9/2016 | 01/04/2016 |