Zellerの公式を使えばもっとスマートに書けるんだけどな