金土日が5回ある10月は823年後?


もうデマだという事が本人から発信されていますが
こんな記事を見つけたのでちょっと検証。

2010年10月は金・土・日が5回ある、823年に1回の月だそうな。よっぽど長生きしない限りはほとんどの方が今月が最後になりますので、じっくり味わってお過ごしください。
http://twitter.com/#!/Daigo214/status/26504791026

プログラム

インスタントなプログラムですが・・・。

public class FSS5YearLoL {

	//計算開始年
	private static int INIT_YEAR = 2010;
	//計算終了年
	private static int END_YEAR = 2050;
	//計算開始年の最初の曜日。1〜6で日曜〜土曜。2010年用で初期化。
	private static int START_DAY_OF_INIT = 6;

	//うるう年の日付配列
	private static int[] DAYS_OF_LEAP_YEAR = new int[]{31,29,31,30,31,30,31,31,30,31,30,31};
	//うるう年以外の日付配列
	private static int[] DAYS_OF_NOT_LEAP_YEAR = new int[]{31,28,31,30,31,30,31,31,30,31,30,31};

	/**
	 * メイン関数
	 */
	public static void main(String[] args) {

		//各月の開始曜日格納変数。まずは計算開始年の最初の曜日で初期化。
		int currentDay = START_DAY_OF_INIT;

		//開始年〜終了年まで。
		for (int year = INIT_YEAR ; year < END_YEAR ; year ++){

			//月を7日間で割ったの余剰日数
			int surplus ;
			//月を1からカウントアップ。
			int month = 1;
			
			//各年各月の日数を取得し、各月分ループ
			for (int dayOfMonth:getYearArray(year)){

				//その月が31日あり、金曜開始で、10月の場合に標準出力
				if(dayOfMonth == 31 && currentDay == 6 && month == 10) System.out.println(year);
					
				//その月の日数を7日間で割った余り
				surplus = dayOfMonth % 7;
				//当月の開始曜日に↑を足して7で割った余りが翌月の開始曜日
				currentDay = (currentDay + surplus) % 7;

				//月を加算
				month++;
			}
		}
		
		
	}

	/**
	 * 日付配列取得
	 */
	private static int[] getYearArray(int year){
		//うるう年判定
		if((year % 4 == 0) && ((year % 100 != 0) || (year % 400 == 0))){
			//うるう年用
			return DAYS_OF_LEAP_YEAR;
		}else{
			//うるう年以外用
			return DAYS_OF_NOT_LEAP_YEAR;
		}
	} 
	
}

7割したものを足したりするとこがポイントでしょうか。

実行結果

2010
2021
2027
2032
2038
2049

なんだ、いっぱいあんじゃん!

追記(2010/10/31)

10月ではなければいっぱいある。

この記事、今までの記事の中で空前絶後のアクセスを頂いておりますので、すこし補足します。

上記の記事では「10月かつ金土日が5回ある月」を算出しましたが、10月に限らなければ来年7月にもあります。

2020年までの詳細はこんな感じ。

2010/01
2010/10
2011/07
2013/03
2014/08
2015/05
2016/01
2016/07
2017/12
2019/03
2020/05

怪文書が回ってきた!

この記事を執筆してから約1ヵ月弱後の今日、チェーンメールで怪文書が回ってきました。

【2010年10月は5回の金曜日 5回の土曜日 5回の日曜日 がすべて1ヶ月の中にあります。これは823年ぶりの事だといいます。8名の良い(大切な)人にこの内容を教えてあげると4日のうちにお金が入ってくるそうです。

中国の風水を基礎に出た内容で、伝えないと無くなってしまうそうです。豊かにならないといけない(なってほしい)あなたに送りますから、豊かになってください。(ハングルを直訳)】

下手な一つの嘘が、さらにまた嘘を呼ぶ…。虚構ってこうやって出来ていくんだな、としみじみ感じました。

「フィルター無し」の情報は検証を!

Twitter等の「フィルターがかからない」情報ツールは、簡単に情報が流れる反面、誤情報も容易に流れます。発信する側に問題が無い訳ではありませんが、まずは受信する側が全ての情報を鵜呑みにしないように努めるべきかと。

そんな事を思いながら、貴重な日曜日の終わりに、追記を行う私なのでしたー!

では。