Názor ke článku Letný/zimný čas z pohľadu programátora II od trsek - // z datumu zisti den v tyzdni U08 GetWDay...

  • 26. 10. 2009 20:54

    trsek (neregistrovaný)

    // z datumu zisti den v tyzdni
    U08 GetWDay (struct RTC)
    {
    U08 mcif[12] = {0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5}; // cifra mesiaca
    U08 ycif; // cifra roku
    U08 ccif; // cifra storocia
    U08 weekd;

      ycif = (RTC.Year + (RTC.Year / 4)) % 7;
      ccif = (RTC.Year % 4 - 3) * (-2);// je vzdy 6 pre roky 20xx

      weekd = (RTC.Day % 7) + mcif[ RTC.Month-1 ] + ycif + ccif;

      // korekcia pre priestupny rok
      if( RTC.Month < 3 )
        weekd = weekd + 6;

      // den v tyzdni
      weekd = weekd % 7;

      // nula je nedela
      if( weekd == 0 )
        weekd = 7;

      // vysledok
      return weekd;
    }