Avatar billede harisk Nybegynder
10. november 2005 - 16:21 Der er 6 kommentarer og
1 løsning

antal hverdage mellem to datoer

hejsa,

så skal jeg til at lave en funktion der regner antallet af hverdage mellem to datoer. Er der nogen der har bikset med det før? Eller kunne lede mig på den rette  vej, samtidigt med at den skal være 100% præcis.
:)

mvh
Avatar billede arne_v Ekspert
10. november 2005 - 16:23 #1
er hverdage bare MAN-FRE eller skal der fraregnes religiøse og andre fridage ?
Avatar billede harisk Nybegynder
10. november 2005 - 16:29 #2
joh, i første omgang bare MAN-FRE så vil jeg ekskludere de andre datoer på et senere tidspunkt :)
Avatar billede arne_v Ekspert
10. november 2005 - 16:34 #3
start dato
en løkke som ligger en dag til indtil man når slut dato
hvis det er MA-FR så tæller den antal op

DateTime klassen må have alt det du skal bruge
Avatar billede harisk Nybegynder
10. november 2005 - 17:02 #4
hvad med det her?

int numberOfBusinessDays = 0;
            TimeSpan ts = new TimeSpan(1, 0,0,0);
           
            for(start; start < end; start.Add(ts))
            {
                DateTime tempDate = start.Add(ts);
                if(tempDate.DayOfWeek > 0 && tempDate.DayOfWeek < 6)
                {
                    numberOfBusinessDays += 1;
                }
            }
Avatar billede harisk Nybegynder
10. november 2005 - 17:25 #5
private static int GetNumberOfBusinessDays(DateTime start, DateTime end)
        {
            int numberOfBusinessDays = 0;
            TimeSpan ts = new TimeSpan(1,0,0,0,0);
           
            for(start = start; start < end; start = start.Add(ts))
            {               
                if(start.DayOfWeek > DayOfWeek.Sunday && start.DayOfWeek < DayOfWeek.Saturday)
                {
                    numberOfBusinessDays += 1;
                }
            }

            return numberOfBusinessDays;
        }
Avatar billede harisk Nybegynder
10. november 2005 - 17:27 #6
og den virker!!! fyr et svar af ;)
Avatar billede arne_v Ekspert
10. november 2005 - 17:48 #7
Jeg ville nok have kodet det som:

        public static int WorkDays(DateTime t1, DateTime t2)
        {
            int res = 0;
            DateTime t = t1;
            while(t <= t2)
            {
                if(DayOfWeek.Monday <= t.DayOfWeek &&
                  t.DayOfWeek <= DayOfWeek.Friday)
                {
                    res++;
                }
                t = t.AddDays(1);
            }
            return res;
        }
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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