20. juli 2005 - 00:22Der er
7 kommentarer og 1 løsning
Ny formel vedr. beregning af overtid
Jeg har behov for at lave en formel der beregner et tillæg på kr. 72,10 pr. time i tidsrummet lørdag kl. 14:00 til mandag kl. 06:00 (samt helligdage)...
Støv, fibre og metalliske partikler kan påvirke både uptime, levetid og driftssikkerhed. Derfor arbejder flere datacentre systematisk med contamination control.
Nej, jeg har lavet timeløn for sig, tillæg hverdage for sig og tillæg weekend og helligdage for sig.
Vi har følgende beregninger: 1. Timeløn 2. Skifteholdstillæg hverdage (tidsrummet 18:00 til 06:00) 3. Skifteholdstillæg weekend (lørdag 18:00 til mandag 06:00) samt helligdage
Oops. Jeg har undersøgt lidt mere og definitionen er: 3. Skifteholdstillæg weekend (lørdag 14:00 til mandag vagt slut) samt helligdage. I praksis betyder det, at man får kr. 72,10 ekstra de timer man er på arbejdet mellem lørdag kl. 14:00 og mandag hvor vagten slutter (Helligdage er som søndag). Altså, hvis man er på job søndag kl. 20:00 til mandag 07:30 så får man 72,10 for 11,5 timer. Og hvis man er på job skærtorsdag 12:00 til 01:00 får man tillægget 13 timer
Jeg har sendt en fil... Jeg har dato med i filen og evt. et felt hvor man markerer om det er helligdag, hvis det skulle blive for besværligt. Mvh Johnny
Der er rettet i den der hedder SH_Skifteholdstillæg, i forhold til den jeg sente retur.
Public Function SH_Skifteholdstillæg(ByVal Dato As Long, Start As Date, Slut As Date, NormalStart As Date, NormalSlut As Date, SogH_Tillæg As Double) Dim T As Date, HD As String, ST_Start As Date
SH_Skifteholdstillæg = 0 HD = HelligdagsNavn(Dato) L = Weekday(Dato) ' Lørdage = 7 T = "00:00" ST_Start = "14:00"
If HD = "Ja" Or L = 7 Then If NormalSlut < NormalStart Then NormalSlut = NormalSlut + 1 If Slut < Start Then Slut = Slut + 1
If L = 7 Then
If Slut > ST_Start And ST_Start > Start Then T = Slut - ST_Start SH_Skifteholdstillæg = (T * 24) * SogH_Tillæg Else T = Start - Slut End If
If HD = "Ja" Then T = Slut - Start SH_Skifteholdstillæg = (T * 24) * SogH_Tillæg End If
End If End Function
Function HelligdagsNavn(lngdate As Long) As String Dim InputYear As Integer, PD As Long, OK As Boolean If lngdate <= 0 Then lngdate = Date InputYear = Year(lngdate) PD = Påskedag(InputYear) ' bruger funktionen Påskedag Select Case lngdate ' Tester nedenstående påstande mod datoen Case DateSerial(InputYear, 1, 1): HelligdagsNavn = "Ja" '"Nytårsdag" Case PD - 3: HelligdagsNavn = "Ja" '"Skærtorsdag" Case PD - 2: HelligdagsNavn = "Ja" '"Langfredag" Case PD: HelligdagsNavn = "Ja" '"Påskedag" Case PD + 1: HelligdagsNavn = "Ja" '"2. Påskedag" Case DateSerial(InputYear, 6, 5): HelligdagsNavn = "Ja" '"Grundlovsdag" Case PD + 26: HelligdagsNavn = "Ja" '"Store Bededag" Case PD + 39: HelligdagsNavn = "Ja" '"Kristi Himmelfartsdag" Case PD + 49: HelligdagsNavn = "Ja" '"Pinsedag" Case PD + 50: HelligdagsNavn = "Ja" '"2. Pinsedag" Case DateSerial(InputYear, 12, 24): HelligdagsNavn = "Ja" '"Julaftensdag" Case DateSerial(InputYear, 12, 25): HelligdagsNavn = "Ja" '"1.Juledag" Case DateSerial(InputYear, 12, 26): HelligdagsNavn = "Ja" '"2.Juledag" Case DateSerial(InputYear, 12, 31): HelligdagsNavn = "Ja" '"Nytårsaftensdag" Case Else HelligdagsNavn = "Nej" ' alle andre dage If Weekday(lngdate) = 7 Then HelligdagsNavn = "Nej" '"Lørdag" If Weekday(lngdate) = 1 Then HelligdagsNavn = "Ja" '"Søndag" End Select End Function
Function Påskedag(InputYear As Integer) As Long ' Returnerer datoen for Påskedag Dim d As Integer d = (((255 - 11 * (InputYear Mod 19)) - 21) Mod 30) + 21 Påskedag = DateSerial(InputYear, 3, 1) + d + (d > 48) + 6 - _ ((InputYear + InputYear \ 4 + d + (d > 48) + 1) Mod 7) End Function
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.