Problem mit DateTime



  • Hallo allerseits,
    ich möchte mir alle Tage in den nächsten 500 Tagen ausgeben, die Freitag, der 13. sind:

    #include "stdafx.h"
    
    using namespace System;
    
    int main(array<System::String ^> ^args)
    {
       DateTime d=DateTime::ParseExact("20.11.2014","d/M/yyyy",nullptr);
       for(int i=0;i<500;i++)
       {
          DateTime answer = d.AddDays(1);
          if (answer.DayOfWeek == "Friday" && answer.Day == 13) //Hier kommt der Fehler
             Console::Write( "{0:d}", answer);  
          d=answer;
       }
       return 0;
    }
    

    Der Compiler bemeckert:
    ==-Operator: Alle Operanden müssen den gleichen Enumerationstyp aufweisen.

    Kann mir jemand weiterhelfen?
    Vielen dank im Voraus.



  • ** DateTime.DayOfWeek ist vom Typ System.DayOfWeek **und kann daher nicht mit einem String verglichen werden.

    Versuch es mal so:

    if (answer.DayOfWeek == DayOfWeek.Friday && answer.Day == 13)
    


  • Das folgende Programm gibt alle Tage in den nächsten 1000 Tagen aus, an denen der 13. auf einen Freitag fällt:

    #include  "stdafx.h"
    using namespace System;
    
    int main(array<System::String ^> ^args)
    {
       DateTime d=DateTime::ParseExact("12.12.2014","d/M/yyyy",nullptr);
       for(int i=0;i<1000;i++)
       {
          DateTime nextday = d.AddDays(1);
          if (nextday.DayOfWeek == DayOfWeek::Friday && nextday.Day == 13)
             Console::WriteLine( "{0:d}", nextday);  
          d=nextday;
       }
       return 0;
    }
    

Log in to reply