与えられた日数で曜日を計算します.
2255 ワード
今日は簡単な方法を発見しました.
JavascriptのDateオブジェクトのgetDay()メソッドで曜日を取得することができます.0~6は日曜日~土曜日に対応します.
jsコードは以下の通りです
回転:http://www.cnblogs.com/chingho/archive/2010/03/26/1697282.html
蔡勒(Zeller)公式:w=y+[y/4]+[c/4]-2 c+[26(m+1)/10]+d-1
数式の記号の意味は以下の通りです.c:世紀-1;y:年(二桁)m:月(mは3以上で、14以下で、つまり蔡勒の公式の中で、ある年の1、2月は前の年の13、14月と見なして計算します.例えば2003年1月1日は2002年の13月1日と見なして計算します.)d:日;[]は整数の部分だけを整理することを表します.(Cは世紀数マイナス一、yは年後二桁、Mは月、dは日数です.1月と2月は前の年の13月と14月で計算します.Cとyは前の年の値を取っています.)
計算したWは7で割って、残りは何曜日ですか?残りが0なら、日曜日です.
2049年10月1日(100周年国慶節)を例にとって、蔡勒(Zeller)式で計算すると、次の通りです.蔡勒(Zeller)式:w=y+[y/4]+[c/4]-2 c+[26(m+1)/10]+d-1=49+[49/4]+[20/4]-2×20+[26]× (10+1)/10]+1-1=49+[12.25]+5-40+[28.6]=49+12+5-40+28=54(7余り5を除く)2049年10月1日(100周年国慶節)は金曜日です.
あなたの誕生日(生年月日、今年、来年)は何曜日ですか?試してみてもいいです
Javascript関数は以下の通りです.
JavascriptのDateオブジェクトのgetDay()メソッドで曜日を取得することができます.0~6は日曜日~土曜日に対応します.
jsコードは以下の通りです
var d = new Date(year,month-1,day);// :month-1
var week = '';
switch (d.getDay())
{
case 0: week = ' '; break;
case 1: week = ' '; break;
case 2: week = ' '; break;
case 3: week = ' '; break;
case 4: week = ' '; break;
case 5: week = ' '; break;
case 6: week = ' '; break;
}
alert(week);
回転:http://www.cnblogs.com/chingho/archive/2010/03/26/1697282.html
蔡勒(Zeller)公式:w=y+[y/4]+[c/4]-2 c+[26(m+1)/10]+d-1
数式の記号の意味は以下の通りです.c:世紀-1;y:年(二桁)m:月(mは3以上で、14以下で、つまり蔡勒の公式の中で、ある年の1、2月は前の年の13、14月と見なして計算します.例えば2003年1月1日は2002年の13月1日と見なして計算します.)d:日;[]は整数の部分だけを整理することを表します.(Cは世紀数マイナス一、yは年後二桁、Mは月、dは日数です.1月と2月は前の年の13月と14月で計算します.Cとyは前の年の値を取っています.)
計算したWは7で割って、残りは何曜日ですか?残りが0なら、日曜日です.
2049年10月1日(100周年国慶節)を例にとって、蔡勒(Zeller)式で計算すると、次の通りです.蔡勒(Zeller)式:w=y+[y/4]+[c/4]-2 c+[26(m+1)/10]+d-1=49+[49/4]+[20/4]-2×20+[26]× (10+1)/10]+1-1=49+[12.25]+5-40+[28.6]=49+12+5-40+28=54(7余り5を除く)2049年10月1日(100周年国慶節)は金曜日です.
あなたの誕生日(生年月日、今年、来年)は何曜日ですか?試してみてもいいです
Javascript関数は以下の通りです.
/*
* ,1-6 ,0
* y ,m ,d
*/
function getWeek(y, m, d) {
var _int = parseInt,
c = _int(y / 100);
y = y.toString().substring(2, 4);
y = _int(y, 10);
if (m === 1) {
m = 13;
y--;
} else if (m === 2) {
m = 14;
y--;
};
var w = y + _int(y / 4) + _int(c / 4) - 2 * c + _int(26 * (m + 1) / 10) + d - 1;
w = w % 7;
w = w >= 0 ? w : w + 7;
//
var week = '';
switch (w)
{
case 0: week = ' '; break;
case 1: week = ' '; break;
case 2: week = ' '; break;
case 3: week = ' '; break;
case 4: week = ' '; break;
case 5: week = ' '; break;
case 6: week = ' '; break;
}
return week;
}