$\newcommand{\O}{\mathrm{O}}$ My Algorithm : kopricky アルゴリズムライブラリ

kopricky アルゴリズムライブラリ

Zeller

コードについての説明

ツェラーの公式とは西暦の年、月、日から曜日($\mathrm{mod}\ 7$)を求める公式である.
以下の実装では日曜日始まりで日曜日が $0$ になる.

時間計算量: $\O (1)$

コード

int zeller(int y, int m, int d){
    if(m <= 2){
        y--;
        m += 12;
    }
    return (y + y/4 - y/100 + y/400 + (13*m+8)/5 + d) % 7;
}

verify 用の問題

AOJ : What day is today? 提出コード