Avatar billede sigaard Nybegynder
27. januar 2005 - 15:24 Der er 10 kommentarer og
2 løsninger

Datobreregning arbejdsdage/hverdage

Er der en nem løsning på at beregne antallet arbejdsdag mellem to dato'er?

DateDiff tæller weekenden med...
Avatar billede joern Nybegynder
27. januar 2005 - 16:28 #1
Hej.

Med datepart("w", af hver dato) kan du teste på dagen i ugen og undtage dagene 6 og 7, hvis du har mandag som dag 1.

M.v.h.  Jørn
Avatar billede terry Ekspert
27. januar 2005 - 19:42 #2
problem starts when you need to take holidays into account.
Avatar billede joern Nybegynder
27. januar 2005 - 19:54 #3
Hej Terry.

Stadig på modersmålet.  For længe siden spurgte jeg, hvorfor du ikke svarer på dansk, når du kan læse det.  Du svarede, at du ikke var dygtig nok.  Hvor længe har du været i Danmark nu?

Still in english.  Long time ago I asked, why you don't answer in danish, when you are able to read it.  You answered, that did nok have that skill.  How long have you stayed in Denmark now?    You are welcome to correct my english.

I øvrigt er det rigtigt med helligdagene.  Det bliver kompliceret.

M.v.h. Jørn
Avatar billede terry Ekspert
27. januar 2005 - 19:59 #4
Its in my finger tips Jørn :o)

Men jer er blevet lidt bedre til dansk, synes jeg selv.

Jeg har KUN været i DK i ca. 20 år, så man kan ikke krav alt for meget af mig.

Og dit engelske er fint
Avatar billede sigaard Nybegynder
28. januar 2005 - 08:39 #5
Hej Jørn
Kan du give et lille eksempel - bare så jeg har lidt at gå videre med... :o)
Avatar billede sigaard Nybegynder
28. januar 2005 - 08:40 #6
omkring feriedage - det ville være mit næste spg., men det kan jeg godt se jeg ikke behøver at bruge tid på at finde en nem løsning på... ;o)
Avatar billede sigaard Nybegynder
28. januar 2005 - 13:52 #7
Jørn -> Hmmm jeg har prøvet lidt forskelligt, men jeg tror ikke jeg har forstået hvad du mener... :o|

Det jeg vil er at tage eksempelvis fredag d. 14. januar og mandag d. 24. januar og udregne antallet af arbejdsdage herimellem. Dvs. resultatet bør blive 8 og ikke 10...
(Datoformatet skal jeg nok selv rode med så det er ligegyldig om det er 14.01.05 eller 14/1-2005 eller noget andet. Det er funktionaliteten til udregning af dato jeg efterlyser)
Avatar billede terry Ekspert
28. januar 2005 - 18:01 #8
Here is an examplewhich you should be able to modify. It ha sbeen taken from an Access (VBA) example.


Function GetBusinessDay(datStart As Date, intDayAdd As Integer)
On Error GoTo Error_Handler
'Adds/Subtracts the proper Business day skipping holidays and weekends
'Requires a table (tblHolidays) with a date field (HolidayDate)
'Arvin Meyer 05/26/98 revised 3/12/2002
'© Arvin Meyer 1998 - 2002 You may use this code in your application provided author
'    is given credit. This code may not be distributed as part of a collection
'    without prior written permission. This header must remain intact.

'Your will need to alter this part to read a table from an access database
' From here ........................
Dim rst As DAO.Recordset
Dim DB As DAO.Database
'Dim strSQL As String

Set DB = CurrentDb
Set rst = DB.OpenRecordset("SELECT [HolidayDate] FROM tblHolidays", dbOpenSnapshot)
' To Here .............................
If intDayAdd > 0 Then
    Do While intDayAdd > 0
        datStart = datStart + 1
        rst.FindFirst "[HolidayDate] = #" & datStart & "#"
        If Weekday(datStart) <> vbSunday And Weekday(datStart) <> vbSaturday Then
            If rst.NoMatch Then intDayAdd = intDayAdd - 1
        End If
    Loop
   
ElseIf intDayAdd < 0 Then

    Do While intDayAdd < 0
        datStart = datStart - 1
        rst.FindFirst "[HolidayDate] = #" & datStart & "#"
        If Weekday(datStart) <> vbSunday And Weekday(datStart) <> vbSaturday Then
            If rst.NoMatch Then intDayAdd = intDayAdd + 1
        End If
    Loop
   
End If

    GetBusinessDay = datStart

Exit_Here:
    rst.Close
    Set rst = Nothing
    Set DB = Nothing
    Exit Function
   
Error_Handler:
    MsgBox Err.Number & ": " & Err.Description
    Resume Exit_Here
End Function
Avatar billede terry Ekspert
28. januar 2005 - 18:03 #9
This link should help too. Aagin it is for Access (VBA) but almost all date/time functions are the same in VB

http://support.microsoft.com/default.aspx?scid=KB;en-us;q88657
Avatar billede sigaard Nybegynder
31. januar 2005 - 08:45 #10
Tak skal i have drenge!
Smart med en løkke til at tælle weekenddage... :o)
Avatar billede terry Ekspert
31. januar 2005 - 10:23 #11
selv tak
Avatar billede joern Nybegynder
31. januar 2005 - 11:55 #12
Hej.

Jeg har været fraværende, så jeg har ikke set tråden før nu, hvor Terry har løst problemet.  Tak for påskønnelsen.

M.v.h.  Jørn
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester