2012年8月15日水曜日

年月日から曜日を計算する

年月日から曜日を取り出す関数です


#include <stdio.h>

int ymd2w(int _y, int m, int q) {
    int J = _y / 100,
        K = _y % 100;
    return((q + (((m + 1)*26) / 10) + K + (K / 4) + (J / 4) - (2 * J)) % 7);
}

int main(void) {

    printf("%d\n", ymd2w(2012, 8, 15));

    return(0);
}
  
楽っすねー
関数じゃなくて マクロで実装したほうが便利かもしれないけど

今回は
を参考にしました

ちなみに
この関数からの戻り値は
日曜=1
月曜=2
...
金曜=6
土曜=7
になるので
コードによっては というか かなりの場合 デクリメントしないと正常な値として扱えません

つーことで
年月日から曜日を計算するコードでした

0 件のコメント:

コメントを投稿