MENU

うるう年を判定するプログラム 解説有

宿題とかでうるう年を判定するプログラムを書くときあると思います。

うるう年は4で割り切れ100で割り切れず400で割り切れます。

なぜこのような計算をするのか

地球の公転周期は365.2422日となっており、一年が365日だとすると、4年で約1日(0.2422×4=0.9688日)のズレが出るので
4年に一回一日分減らす

しかし、厳密には4年に一度調整するこの「一日」は実際には0.9688日なので、0.0312日の誤差が生じてしまう

そこでさらに、この0.0312日を調整するために、400年で3日(0.0312×100=3.12日)をうるう年にしない年とすることで解消する。

その解消する年を100で割り切れる年としたのだが、100年毎に平年としてしまうと、400年に3日調整するところを、4日と一日多く調整してしまう。

そこで400年ごとにうるう年を設けた。

ということですね。

うるう年については
うるう年は400年に何回ある? | 雑学 | Ofee
↑ここを参考にしました。

using System;

public class Hantei
{

public bool uruudoshi ;

  public static void Main(string[] args)
  {
    ////ここに判定したい年を入力
     uruudoshi = Hantei(2020);

 Console.Write("{0}。\n", uruudoshi);


  }

public bool Hantei(int y){

		if (y % 4 == 0) {

			if (y % 100 != 0) {

				return true;

			} else {

				if (y % 400 == 0) {

					return true;

				} else {

					return false;

				}
			}
		}else{
					return false;

			}		

	}
}

これでもいいけどね

public bool Hantei(int y){

return y%4 == 0&&(y%100 !=0 ||y&400==0);
}