SOLVED - Problem mit System.DateTime.AddDays(double)



  • Hallo,

    bezogen auf folgendes Beispiel habe ich einen kurzen Code geschrieben, der leider nicht funktioniert.
    https://msdn.microsoft.com/de-de/library/system.datetime.adddays(v=vs.110).aspx

    int WorkDays = 0;
                System.DateTime StartDate = new System.DateTime(2017, 02, 25);
                System.DateTime EndDate = new System.DateTime(2017, 03, 02);
                System.DateTime ActDate = StartDate.AddDays(1); //kein Fehler!
                System.TimeSpan Days = EndDate.Subtract(StartDate);
    
                do
                {
                    if(ActDate.DayOfWeek != DayOfWeek.Saturday && ActDate.DayOfWeek != DayOfWeek.Sunday) { WorkDays++; }
                    ActDate = ActDate.AddDays(1); //Fehler!
    
                } while (StartDate < EndDate);
    
                Console.WriteLine("Between " + StartDate.ToString() + " and " + EndDate.ToString() + " there are " + Days.Days + " days!");
                Console.WriteLine("Between " + StartDate.ToString() + " and " + EndDate.ToString() + " there are " + WorkDays + " workdays!");
                Console.WriteLine();
    

    Zunächst einmal ist mir klar, dass Feiertage wie z.B. der 1.Mai oder der 25.12 hier nicht berücksichtigt werden - das kommt noch. Allerdings funktioniert schon dieses einfache Codebeispiel nicht.
    Die Fehlermeldung aus Zeile 3 lautet:
    The added or subtracted value results in an un-representable DateTime.

    Hat jemand eine Ahnung?



  • Sorry, sorry - hab den Fehler schon gefunden.

    do{
    //...
    }while(ActDate < EndDate);
    

    So muss das natürlich heißen.


Log in to reply