2009-08-31

http://anond.hatelabo.jp/20090831161712

よく分かりません。誰か解説してください。

せっかくだからベタに解説してみる。

クラス名がsecとかつっこみどころは全部スルーで)

まず変数宣言。

時間と日付を変数に入れてる。2009-6-5 23:53:0だね。

秒も0にして。ur(たぶん閏uruuの略)をfalseに。

最初のfor文で、2008年までの秒数を足そうとしてる。

しかし、閏年の処理が変なので上手くいかない。

(400で割って1余る年と、4で割って1余る年は、別に閏年じゃない)

月が2だったら、2678400を足してる。

その後は特筆のおもしろさ。

monthが2でかつ、monthが3でかつ、urがtrueなら2505600を足してる。

(さっきのurの扱いに注目。去年が400で割って1余る年か、4で割って1余る年の時だけ)

しかし、判るとおりmonth が 2 で かつ 3 なんて素っ頓狂な事にはならない。

つまりここは、month が 2 かそれ以外かの処理しかない。

		if(month == 2){
			sec += 2678400;
		}

要はこう圧縮できる。

最後に日付(月の頭からその日付)の前日までの秒数を足して

時間と分と秒を、全部秒に直して足して、

表示してる。

総評

  • ファビュラス!!

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん