もう…

タイトル変えたwww

blogのタイトルがどうも自分的にしっくりこず、1週間も経たずして変更w
まぁまだ誰も見てないだろうしOKっしょww

年月日フォーマットによるカウントダウン

掲示板サイトでちょこちょこ回答する事があるんだけど、そこで件の様な事を実現するには?
といった質問があった。それに対する回答が以下のソース。
検証不足ゆえ、どっかまずってる部分あるかもしれないけど、まぁ良しとしようww

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="content-script-type" content="text/javascript">
<script type="text/javascript">
//月ごとの日数
var days = new Object();
days["1"]  = 31;
days["2"]  = 28;
days["3"]  = 31;
days["4"]  = 30;
days["5"]  = 31;
days["6"]  = 30;
days["7"]  = 31;
days["8"]  = 31;
days["9"]  = 30;
days["10"] = 31;
days["11"] = 30;
days["12"] = 31;

function countdown() {

  var tgtY = 2009; //★ ※年は西暦
  var tgtM = 3;    //★
  var tgtD = 2     //★

  var rmdY = 0;    //残り年数
  var rmdM = 0;    //残り月数
  var rmdD = 0;    //残り日数
  var lastday = 0; //その月の日数

  var msg = "";    //表示文字列

  //現在日付を取得
  var today = new Date();
  var yy = today.getFullYear();   //年
  var mm = today.getMonth() + 1;  //月
  var dd = today.getDate();       //日

  //残り日数計算
  if (dd > tgtD) {
    tgtM = tgtM - 1;
    if ((isLeapYear(yy)) && (mm == 2)) {
      lastday = 29;
    } else {
      lastday = days[mm];
    }
    rmdD = (lastday - dd) + tgtD;
  } else {
    rmdD = tgtD - dd;
  }
	
  //残り月数計算
  if (mm > tgtM) {
    tgtY = tgtY - 1;
    rmdM = tgtM - mm + 12;
  } else {
    rmdM = tgtM - mm;
  }

  //残り年数計算	
  rmdY = tgtY - yy;

  msg = tgtY + "年" + tgtM + "月" + tgtD + "日まで、あと";
	
  if (rmdY != 0) msg = msg + rmdY + "年と";
  if (rmdM != 0) msg = msg + rmdM + "ヶ月と";
  if (rmdD != 0) msg = msg + rmdD + "日です。";
	
  with (document) {
    open();
    write(msg);
    close();
  }
}

//閏年判定
function isLeapYear(y) { 
  return (y % 4 == 0 && y % 100 != 0) || y % 400 == 0;
}
</script>
<title>年月日でカウントダウンt</title>
</head>
<body>
<div style="text-align: center;">
  <script type="text/javascript">
    countdown();
  </script>
</div>
</body>
</html>

残り日数の考え方は以下の通り。

現在日付の日の部分が目的日付の日の部分よりも
大きい場合、例えば
現在日付が2008/2/3、目的の日が2008/4/2 といった場合、

2/3 〜 2/29 ===> 2月の残り日数 26日
4/1 〜 4/2 ===> 2日

それぞれの日数をあわせて 28日、よって残り年月日は
1ヶ月と28日 ってなります。

嫁からも貰えんかった…(´;ω;`)

そういや、昨日ってバレンタインだったけど、もらえたのは会社での義理チョコ1ヶのみ。
娘はおろか、嫁にすら貰えませんでした。。。orz
これはやはり日頃の行いのせいって事ですかね。。。