なんかログインしたらたまたまプログラマーの日って書いてあってこれはなんか記事を書かなきゃなんて思った次第です。

 

んで、何の日なのよって調べてみました。

 

Wikiより引用

https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%83%BC%E3%81%AE%E6%97%A5

 

プログラマーの日ロシア語:День программиста、英語:Programmers' Day)は、ロシアの公式な祝日である。コンピュータのデータを扱う単位である8ビット256通りの表現があることから、1月1日から256日目にあたる9月13日閏年の場合は9月12日)に定められた[1]2009年7月24日にロシア情報技術・通信省により認められた。 二ゴロとも読む

 

引用ここまで

 

由来が面白いですが、これ閏年はどうするんだろ・・・?

 

というわけで閏年かどうか判定するロジックをなんとなく組んでみます。(強引)

言語は多分VB。

 

Function isLeapYear(seireki as long) as boolean

    if seireki mod 400 = 0 then

        return True

    end if

    if seireki mod 100 =0 then

        return False

    end if

    if seireki mod 4 = 0 then

        return True

    end if

    return False

end Function

 

とか

 

Function isLeapYear(seireki as long) as boolean

    if seireki mod 4 = 0 then

        if seireki mod 100 = 0 then
            if seireki mod 400 = 0 then
                return True
            else
                return False
            end if
        else
            return True
        end if
    end if
end Function
 
とかかなぁ?動作確認とか一切してないのであれですが、下の方が処理は早そうな感じ。
 
んで、これの元になった閏年の根拠はWikiから。
  1. 西暦年が4で割り切れる年は閏年。
  2. ただし、西暦年が100で割り切れる年は平年。
  3. ただし、西暦年が400で割り切れる年は閏年。
ここまで引用。
 
4年に一回は大体って話でたまーにその法則に当てはまらない時もあるんですねぇ。
直近だと2000年が100で割り切れるけど400でも割り切れるから閏年という400年に一回の奇跡的な年だったんですねぇ。