カレンダー
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
***カレンダー [#fa097f18]
:2008年大安カレンダー (日曜始まり) - 日めくりカレンダ...
:2019年(平成31年)カレンダー|http://www.benri.com/calend...
:pdf de calendar 2|http://pdc2.u1m.biz/
:パソコンカレンダーサイト|http://www.pasokoncalendar.com/
:パソコンカレンダーサイト|http://www.pasokoncalendar.com/...
:指定年の・日本の祝日日付一覧|http://koyomi8.com/sub/syuk...
:みんなのエクセル|https://all-excel.com/calendar.html
#html{{
<!--
// calender.txt と言う名前でセーブしてください。
var WeekDays = new Array("日","月","火","水","木","金","...
var Mdays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
// yy,mm の月の日数を返す
function GetMonthDays(yy,mm)
{
Mdays[1] = 28; // 閏年の処理開始
if ((yy % 4) == 0) Mdays[1] = 29;
if ((yy % 100) == 0) Mdays[1] = 28;
if ((yy % 400) == 0) Mdays[1] = 29; // 閏年の処理終了
return Mdays[mm - 1];
}
// yy,mm,dd から年通日を計算する 1/1 は、1.0 とする
function GetYearDays(yy,mm,dd)
{
var m,days;
days = dd;
m = GetMonthDays(yy,mm); // 閏処理のためのダミー
for (m = 0; m < (mm - 1); m++) days += Mdays[m];
return days;
}
// AD 1.1.0 からの通日(JD - 0.5 の値)
function Ymd2Jd(yy,mm,dd) {
var days,tmp,yym1;
yym1 = yy - 1;
days = 1721422; //AD 1.1.0 の JD - 0.5
Mdays[1] = 28;
if (yy % 4 == 0) {
Mdays[1] = 29;
if (yy > 1582) {
if (yy % 100 == 0) {
Mdays[1] = 28;
if (yy %400 == 0) {
Mdays[1] = 29;
}
}
}
}
days += Math.floor(365.25 * yym1 + 0.1);
for (m = 0; m < (mm - 1) ; m++) {
days += Mdays[m];
}
days += dd;
if (days >= 2299160) days -= 10; // 失われた十日の削除
if (yym1 >= 1600) {
days -= Math.floor((yym1 - 1600 + 0.1) / 100);
days += Math.floor((yym1 - 1600 + 0.1) / 400);
}
return days;
}
// 曜日のインデックス(0-6)を返す。
// 通日計算にはYmd2Jd() を使用する。
function GetWeekDays(yy,mm,dd)
{
var days;
var TDate = new Date();
days = Math.floor(Ymd2Jd(yy,mm,dd) + 2);
days = days - Math.floor(days / 7) * 7;
return days;
}
// 曜日の文字を返す('日' .. '土')
function GetWeekDayStr(yy,mm,dd)
{
var idx;
idx = GetWeekDays(yy,mm,dd);
return WeekDays[idx];
}
// year,month から、春分・秋分の日付を計算する。
// month : 3 or 9
var Syunbunpar1 = new Array(19.8277,20.8357,20.8431,21.85...
var Syunbunpar2 = new Array(22.2588,23.2588,23.2488,24.24...
function Syunbun(year,month) // 春分の日、秋分の日を計算...
{
var ans,p1,tyear;
if ((year >= 1851) && (year <= 1899)) p1 = 0;
else if ((year >= 1900) && (year <= 1979)) p1 = 1;
else if ((year >= 1980) && (year <= 2099)) p1 = 2;
else if ((year >= 2100) && (year <= 2150)) p1 = 3;
else return 0; // エラー(範囲外)
tyear = 1980;
tyear = (year - tyear);
if (month == 3) // 春分の日
{
ans = Math.floor(Syunbunpar1[p1] + 0.2421904 * tyear - ...
}
else if (month == 9) // 秋分の日
{
ans = Math.floor(Syunbunpar2[p1] + 0.2421904 * tyear - ...
}
else ans = 0; // 春分でも秋分でもない
return ans;
}
var dayend,month,year = -9999;
var gengouY = new Array(1868,1912,1926,1989);
var gengou = new Array("明治","大正","昭和","平成");
var iwaimend = new Array(-1,-1); // 月末日が祝日となる月...
var iwaimends= new Array("",""); // 月末が祝日になる場合...
var IDD = new Array(368);
var MDD = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
var MDDt = new Array(13);
var iwaiday = new Array(); // 祝日月日
var iwaistr = new Array(); // 祝日名
var Iwai = new Array(); // 祝日基本配列
Iwai[0] = "101,1949,9000,元日";
Iwai[1] = "115,1949,1999,成人の日";
Iwai[2] = "151,2000,9000,成人の日";
Iwai[3] = "211,1967,9000,建国記念の日";
Iwai[4] = "398,1949,9000,春分の日";
Iwai[5] = "429,1949,1988,天皇誕生日";
Iwai[6] = "429,1989,2006,みどりの日";
Iwai[7] = "429,2007,9000,昭和の日";
Iwai[8] = "503,1949,9000,憲法記念日";
Iwai[9] = "504,2007,9000,みどりの日";
Iwai[10] = "505,1949,9000,こどもの日";
Iwai[11] = "720,1996,2002,海の日";
Iwai[12] = "761,2003,9000,海の日";
Iwai[13] = "915,1966,2002,敬老の日";
Iwai[14] = "961,2003,9000,敬老の日";
Iwai[15] = "999,1948,9000,秋分の日";
Iwai[16] = "1010,1966,1999,体育の日";
Iwai[17] = "1051,2000,9000,体育の日";
Iwai[18] = "1103,1948,9000,文化の日";
Iwai[19] = "1123,1948,9000,勤労感謝の日";
Iwai[20] = "1223,1989,9000,天皇誕生日";
Iwai[21] = "410,1959,1959,明仁親王の結婚の儀";
Iwai[22] = "224,1989,1989,昭和天皇の大喪の礼";
Iwai[23] = "1112,1990,1990,即位礼正殿の儀";
Iwai[24] = "609,1993,1993,徳仁親王の結婚の儀";
Iwai[25] = "811,2016,9000,山の日";
iwaistr[30] = "(振替休日)"; // 特別な休日
iwaistr[31] = "(国民の休日)";
iwaistr[32] = "(※休日※)"; // 2007から、振替休日とも従来の...
// 月初の通日配列初期化
function SetMDD(year) {
var i;
MDD[2] = 28;
if (year % 4 == 0) {MDD[2] = 29;}
if (year % 100 == 0) {MDD[2] = 28;}
if (year % 400 == 0) {MDD[2] = 29;}
MDDt[0] = 0;
for (i = 1; i <= 12; i++) {
MDDt[i] = MDDt[i-1] + MDD[i]; // 月始めの通日計算
}
}
// MMDD→days 変換
function ConvMDDays(md) {
var m,d;
d = md % 100;
m = (md - d) / 100;
return MDDt[m-1] + d;
}
// 祝日の日付データの初期化。年が変わるときは必ず実行して...
function InitIwai(year)
{
var i,d;
var tmp = new Array();
var iwaidayS,iwaidayE;
var baseday;
for (i = 0; i < Iwai.length ; i++) {
tmp = Iwai[i].split(",");
iwaiday[i] = 0;
iwaistr[i] = "";
if ((year >= tmp[1] * 1) && (year <= tmp[2] * 1)) {
iwaiday[i] = tmp[0] * 1;
iwaistr[i] = tmp[3]; // 祝日名
}
}
SetMDD(year); // 月初通日配列初期化
Initvariable(year); // 移動祝日の計算
for (d = 1; d <= MDDt[12]+1 ; d++) {
IDD[d] = -1;
}
for (i = 0; i < iwaiday.length; i++) {
if (iwaiday[i] > 0) {
IDD[ConvMDDays(iwaiday[i])] = i; // その年に有効な祝日...
}
}
if (year >= 1973) { // 振替休日の処理
baseday = GetWeekDays(year,1,0);
for (d = 1; d <= MDDt[12] ; d++) {
if ((IDD[d] >= 0) && ((d + baseday) % 7 == 0)) {
if (year < 2007) { // 2007改正以前
if (year == 1973) { // 1973.4.12以降有効
if (d >= 102) {
if (IDD[d + 1] <= 0) {
IDD[d + 1] = 30; // 振替休日
}
}
} else { // 1974以後
if (IDD[d + 1] <= 0) {
IDD[d + 1] = 30; // 振替休日
}
}
} else { // 2007改正後
j = 0;
for (j = 1; j < 7; j++) { // 無限ループ回避(年末処...
if (IDD[d + j] < 0) {
IDD[d + j] = 30; // 振替休日
break;
}
}
}
}
}
}
if (year >= 1986) { // 国民の休日
for (d = 1; d <= MDDt[12] - 2 ; d++) {
if ((IDD[d] >= 0) && (IDD[d] < 30)) { // 祝日(振替は含...
if ((IDD[d + 2] >= 0) && (IDD[d + 2] < 30)) {
if (year < 2007) { // 2007改正前
if ((IDD[d + 1] < 0) && ((d + 1 + baseday) % 6 != 0...
IDD[d + 1] = 31; // 国民の休日
}
} else { // 2007改正後
if ((IDD[d + 1] < 0) || (IDD[d + 1] >= 30)) {
if (IDD[d + 1] >= 30) {
IDD[d + 1] = 32; // 振替休日で国民の休日でもある...
} else {
IDD[d + 1] = 31; // 国民の休日と表示
}
}
}
}
}
}
}
}
// 西暦年を元号に変換。明治~平成まで。月のチェックをして...
function GetGengouY(year)
{
var i,ie,yy;
yy = '';
ie = gengouY.length;
for (i = ie ; i > 0 ; i--)
{
if (year >= gengouY[i])
{
yy = gengou[i] + (year - gengouY[i] + 1).toString(10) ...
break;
}
}
return yy;
}
// 移動祝日の日付計算(iwaiday[] の数字設定)
function Initvariable(year)
{
var i,j,day,tmp,mon;
for (i = 0; i < iwaiday.length ; i++) {
tmp = iwaiday[i] % 100;
if (tmp == 98) iwaiday[i] = 300 + Syunbun(year,3); // ...
if (tmp == 99) iwaiday[i] = 900 + Syunbun(year,9); // ...
if ((tmp > 31) && (tmp < 90)) {
mon = Math.floor(iwaiday[i] / 100);
day = tmp % 10;
tmp = (Math.floor(tmp / 10) - 4) * 7 + 1;
for (j = tmp; j < (tmp + 7); j++) { // 第何週の何曜日...
if (GetWeekDays(year,mon,j) == day) {
iwaiday[i] = mon * 100 + j;
break;
}
}
}
}
}
// 春分、秋分の日付の設定(iwaiday[] の数字設定)
function InitSyunbun(year,month)
{
var i,day,tmp;
i = 0;
day =0;
tmp = -9999;
if (month == 3) tmp = 398;
if (month == 9) tmp = 999;
if (tmp < 0) return;
for(i = 0; day < 5000 ; i++)
{
day = iwaiday[i];
if (day == tmp)
{
iwaiday[i] = Syunbun(year,month) + month * 100; // 春...
break;
}
}
}
// year,monthのカレンダを作る。today が 0以下なら、「今日...
// 月齢等の表示用に、拡張文字列挿入フラグ exflag & 挿入文...
// exflag が 1 なら、日付表示後に拡張文字列を挿入する 200...
// 2005年の昭和の日法案により、振替休日の扱い変更 2005.07...
function calender_main(wd,year,month,today,exflag,exstr)
{
var i,dflag,day,zeroday;
InitIwai(year); // 祝日日付配列の初期化
zeroday = Ymd2Jd(year,month,0) - Ymd2Jd(year,1,0); // 0 ...
dayend = GetMonthDays(year,month);
if (today <= 0) today = -99; // today が 0 以下なら、今...
wd.document.writeln('<table border bgcolor="#ffffaa">');
wd.document.writeln('<caption><strong>' + year + '年' + ...
for (i = 0; i < 7 ; i++)
{
if (i == 0) wd.document.write('<tr><th bgcolor="#ffaaaa...
else if (i == 6) wd.document.writeln('<th bgcolor="#aaa...
else wd.document.write('<th>' + WeekDays[i] + '</th>');
}
day = GetWeekDays(year,month,0); // 0日の曜日を求める(...
day = -day;
if (day == -6) day = 1; // 前月末日が土曜日なら先頭の空...
for (;;)
{
wd.document.write('<tr align="right">');
for (i = 0; i < 7 ; i++)
{
dflag = i;
if ((day >= 1) && (day <= dayend)) {
if (IDD[day + zeroday] >= 0) dflag = 0; // 祝日か休日
if (day == today) dflag = -1; // 今日です
}
if (dflag == -1) wd.document.write('<td bgcolor="#aaaa...
else if (dflag == 0) wd.document.write('<td bgcolor="#...
else if (dflag == 6) wd.document.write('<td bgcolor="#...
else wd.document.write('<td>');
if ((day >= 1) && (day <= dayend))
{
wd.document.write(day);
if (exflag == 1) // exflag = 1 なら、拡張文字列の挿入
{
wd.document.write(exstr);
}
}
else wd.document.write(' ');
wd.document.writeln('</td>');
day++;
}
wd.document.writeln('</tr>');
if (day > dayend) break;
}
wd.document.writeln('<tr bgcolor="#ffffff"><th align="le...
dflag = 0; // 祝日・休日の数を数える
for (day = 1; day <= dayend ; day++) {
if (IDD[day + zeroday] >= 0) {
wd.document.writeln('<tr bgcolor="#ffffff"><td>' + day...
dflag++;
}
}
if (dflag <= 0) {
wd.document.writeln('<tr bgcolor="#ffffff"><td align="l...
}
wd.document.writeln('</table>');
}
// year,monthのカレンダを作る。today が 0以下なら、「今日...
// 月齢等の表示用に、拡張文字列挿入フラグ exflag & 挿入文...
// ofswd はカレンダー表示の先頭曜日。
// exflag が 1 なら、日付表示後に拡張文字列を挿入する 200...
// 2005年の昭和の日法案により、振替休日の扱い変更 2005.07...
function calender2(wd,year,month,today,ofswd,exflag,exstr)
{
var WDF = new Array(' bgcolor="#ffaaaa"','','','','','',...
var i,dflag,day,zeroday;
var exi,day,firstWd,STflag;
InitIwai(year); // 祝日日付配列の初期化
zeroday = Ymd2Jd(year,month,0) - Ymd2Jd(year,1,0); // 0 ...
dayend = GetMonthDays(year,month);
if (today <= 0) today = -99; // today が 0 以下なら、今...
wd.document.writeln('<table border bgcolor="#ffffaa">');
wd.document.writeln('<caption><strong>' + year + '年' + ...
wd.document.write('<tr>');
for (i = 0; i < 7 ; i++) {
exi = (ofswd + i) % 7;
wd.document.write('<th' + WDF[exi] + '>' + WeekDays[exi...
}
wd.document.writeln('</tr>');
firstWd = GetWeekDays(year,month,1); // 1日の曜日を求め...
STflag = 0; // 第一日の前
day = 0;
while (STflag < 2) { // 2 なら終了
wd.document.write('<tr align="right">');
for (i = 0; i < 7 ; i++) {
exi = (ofswd + i) % 7;
if ((STflag == 0) && (exi == firstWd)) {
STflag = 1;
day = 1;
}
if (STflag == 1) {
if (IDD[day + zeroday] >= 0) exi = 0; // 祝日か休日
if (day == today) exi = 7; // 今日をマーク
wd.document.write('<td' + WDF[exi] + '>');
wd.document.write('' + day);
if (exflag == 1) // exflag = 1 なら、拡張文字列の挿入
{
wd.document.write(exstr);
}
day++;
if (day > dayend) STflag = 2;
} else {
wd.document.write('<td' + WDF[exi] + '> ');
}
wd.document.write('</td>');
}
wd.document.writeln('</tr>');
}
wd.document.writeln('<tr bgcolor="#ffffff"><th align="le...
dflag = 0; // 祝日・休日の数を数える
for (day = 1; day <= dayend ; day++) {
if (IDD[day + zeroday] >= 0) {
wd.document.writeln('<tr bgcolor="#ffffff"><td>' + day...
dflag++;
}
}
if (dflag <= 0) {
wd.document.writeln('<tr bgcolor="#ffffff"><td align="l...
}
wd.document.writeln('</table>');
}
// 現在のページに拡張表示文字列を挿入しないシンプルなカレ...
// 単に内部でcalender_main()を呼び出すだけ
function calender(YY,MM,DD)
{
calender_main(this,YY,MM,DD,0,"");
document.writeln(YY + ' : ' + MM + ' : ' + DD + ' <br>');
}
// -->
}}
***始まり自由カレンダー [#ra2df86e]
https://motto123.sakura.ne.jp/fc1.html
終了行:
***カレンダー [#fa097f18]
:2008年大安カレンダー (日曜始まり) - 日めくりカレンダ...
:2019年(平成31年)カレンダー|http://www.benri.com/calend...
:pdf de calendar 2|http://pdc2.u1m.biz/
:パソコンカレンダーサイト|http://www.pasokoncalendar.com/
:パソコンカレンダーサイト|http://www.pasokoncalendar.com/...
:指定年の・日本の祝日日付一覧|http://koyomi8.com/sub/syuk...
:みんなのエクセル|https://all-excel.com/calendar.html
#html{{
<!--
// calender.txt と言う名前でセーブしてください。
var WeekDays = new Array("日","月","火","水","木","金","...
var Mdays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
// yy,mm の月の日数を返す
function GetMonthDays(yy,mm)
{
Mdays[1] = 28; // 閏年の処理開始
if ((yy % 4) == 0) Mdays[1] = 29;
if ((yy % 100) == 0) Mdays[1] = 28;
if ((yy % 400) == 0) Mdays[1] = 29; // 閏年の処理終了
return Mdays[mm - 1];
}
// yy,mm,dd から年通日を計算する 1/1 は、1.0 とする
function GetYearDays(yy,mm,dd)
{
var m,days;
days = dd;
m = GetMonthDays(yy,mm); // 閏処理のためのダミー
for (m = 0; m < (mm - 1); m++) days += Mdays[m];
return days;
}
// AD 1.1.0 からの通日(JD - 0.5 の値)
function Ymd2Jd(yy,mm,dd) {
var days,tmp,yym1;
yym1 = yy - 1;
days = 1721422; //AD 1.1.0 の JD - 0.5
Mdays[1] = 28;
if (yy % 4 == 0) {
Mdays[1] = 29;
if (yy > 1582) {
if (yy % 100 == 0) {
Mdays[1] = 28;
if (yy %400 == 0) {
Mdays[1] = 29;
}
}
}
}
days += Math.floor(365.25 * yym1 + 0.1);
for (m = 0; m < (mm - 1) ; m++) {
days += Mdays[m];
}
days += dd;
if (days >= 2299160) days -= 10; // 失われた十日の削除
if (yym1 >= 1600) {
days -= Math.floor((yym1 - 1600 + 0.1) / 100);
days += Math.floor((yym1 - 1600 + 0.1) / 400);
}
return days;
}
// 曜日のインデックス(0-6)を返す。
// 通日計算にはYmd2Jd() を使用する。
function GetWeekDays(yy,mm,dd)
{
var days;
var TDate = new Date();
days = Math.floor(Ymd2Jd(yy,mm,dd) + 2);
days = days - Math.floor(days / 7) * 7;
return days;
}
// 曜日の文字を返す('日' .. '土')
function GetWeekDayStr(yy,mm,dd)
{
var idx;
idx = GetWeekDays(yy,mm,dd);
return WeekDays[idx];
}
// year,month から、春分・秋分の日付を計算する。
// month : 3 or 9
var Syunbunpar1 = new Array(19.8277,20.8357,20.8431,21.85...
var Syunbunpar2 = new Array(22.2588,23.2588,23.2488,24.24...
function Syunbun(year,month) // 春分の日、秋分の日を計算...
{
var ans,p1,tyear;
if ((year >= 1851) && (year <= 1899)) p1 = 0;
else if ((year >= 1900) && (year <= 1979)) p1 = 1;
else if ((year >= 1980) && (year <= 2099)) p1 = 2;
else if ((year >= 2100) && (year <= 2150)) p1 = 3;
else return 0; // エラー(範囲外)
tyear = 1980;
tyear = (year - tyear);
if (month == 3) // 春分の日
{
ans = Math.floor(Syunbunpar1[p1] + 0.2421904 * tyear - ...
}
else if (month == 9) // 秋分の日
{
ans = Math.floor(Syunbunpar2[p1] + 0.2421904 * tyear - ...
}
else ans = 0; // 春分でも秋分でもない
return ans;
}
var dayend,month,year = -9999;
var gengouY = new Array(1868,1912,1926,1989);
var gengou = new Array("明治","大正","昭和","平成");
var iwaimend = new Array(-1,-1); // 月末日が祝日となる月...
var iwaimends= new Array("",""); // 月末が祝日になる場合...
var IDD = new Array(368);
var MDD = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
var MDDt = new Array(13);
var iwaiday = new Array(); // 祝日月日
var iwaistr = new Array(); // 祝日名
var Iwai = new Array(); // 祝日基本配列
Iwai[0] = "101,1949,9000,元日";
Iwai[1] = "115,1949,1999,成人の日";
Iwai[2] = "151,2000,9000,成人の日";
Iwai[3] = "211,1967,9000,建国記念の日";
Iwai[4] = "398,1949,9000,春分の日";
Iwai[5] = "429,1949,1988,天皇誕生日";
Iwai[6] = "429,1989,2006,みどりの日";
Iwai[7] = "429,2007,9000,昭和の日";
Iwai[8] = "503,1949,9000,憲法記念日";
Iwai[9] = "504,2007,9000,みどりの日";
Iwai[10] = "505,1949,9000,こどもの日";
Iwai[11] = "720,1996,2002,海の日";
Iwai[12] = "761,2003,9000,海の日";
Iwai[13] = "915,1966,2002,敬老の日";
Iwai[14] = "961,2003,9000,敬老の日";
Iwai[15] = "999,1948,9000,秋分の日";
Iwai[16] = "1010,1966,1999,体育の日";
Iwai[17] = "1051,2000,9000,体育の日";
Iwai[18] = "1103,1948,9000,文化の日";
Iwai[19] = "1123,1948,9000,勤労感謝の日";
Iwai[20] = "1223,1989,9000,天皇誕生日";
Iwai[21] = "410,1959,1959,明仁親王の結婚の儀";
Iwai[22] = "224,1989,1989,昭和天皇の大喪の礼";
Iwai[23] = "1112,1990,1990,即位礼正殿の儀";
Iwai[24] = "609,1993,1993,徳仁親王の結婚の儀";
Iwai[25] = "811,2016,9000,山の日";
iwaistr[30] = "(振替休日)"; // 特別な休日
iwaistr[31] = "(国民の休日)";
iwaistr[32] = "(※休日※)"; // 2007から、振替休日とも従来の...
// 月初の通日配列初期化
function SetMDD(year) {
var i;
MDD[2] = 28;
if (year % 4 == 0) {MDD[2] = 29;}
if (year % 100 == 0) {MDD[2] = 28;}
if (year % 400 == 0) {MDD[2] = 29;}
MDDt[0] = 0;
for (i = 1; i <= 12; i++) {
MDDt[i] = MDDt[i-1] + MDD[i]; // 月始めの通日計算
}
}
// MMDD→days 変換
function ConvMDDays(md) {
var m,d;
d = md % 100;
m = (md - d) / 100;
return MDDt[m-1] + d;
}
// 祝日の日付データの初期化。年が変わるときは必ず実行して...
function InitIwai(year)
{
var i,d;
var tmp = new Array();
var iwaidayS,iwaidayE;
var baseday;
for (i = 0; i < Iwai.length ; i++) {
tmp = Iwai[i].split(",");
iwaiday[i] = 0;
iwaistr[i] = "";
if ((year >= tmp[1] * 1) && (year <= tmp[2] * 1)) {
iwaiday[i] = tmp[0] * 1;
iwaistr[i] = tmp[3]; // 祝日名
}
}
SetMDD(year); // 月初通日配列初期化
Initvariable(year); // 移動祝日の計算
for (d = 1; d <= MDDt[12]+1 ; d++) {
IDD[d] = -1;
}
for (i = 0; i < iwaiday.length; i++) {
if (iwaiday[i] > 0) {
IDD[ConvMDDays(iwaiday[i])] = i; // その年に有効な祝日...
}
}
if (year >= 1973) { // 振替休日の処理
baseday = GetWeekDays(year,1,0);
for (d = 1; d <= MDDt[12] ; d++) {
if ((IDD[d] >= 0) && ((d + baseday) % 7 == 0)) {
if (year < 2007) { // 2007改正以前
if (year == 1973) { // 1973.4.12以降有効
if (d >= 102) {
if (IDD[d + 1] <= 0) {
IDD[d + 1] = 30; // 振替休日
}
}
} else { // 1974以後
if (IDD[d + 1] <= 0) {
IDD[d + 1] = 30; // 振替休日
}
}
} else { // 2007改正後
j = 0;
for (j = 1; j < 7; j++) { // 無限ループ回避(年末処...
if (IDD[d + j] < 0) {
IDD[d + j] = 30; // 振替休日
break;
}
}
}
}
}
}
if (year >= 1986) { // 国民の休日
for (d = 1; d <= MDDt[12] - 2 ; d++) {
if ((IDD[d] >= 0) && (IDD[d] < 30)) { // 祝日(振替は含...
if ((IDD[d + 2] >= 0) && (IDD[d + 2] < 30)) {
if (year < 2007) { // 2007改正前
if ((IDD[d + 1] < 0) && ((d + 1 + baseday) % 6 != 0...
IDD[d + 1] = 31; // 国民の休日
}
} else { // 2007改正後
if ((IDD[d + 1] < 0) || (IDD[d + 1] >= 30)) {
if (IDD[d + 1] >= 30) {
IDD[d + 1] = 32; // 振替休日で国民の休日でもある...
} else {
IDD[d + 1] = 31; // 国民の休日と表示
}
}
}
}
}
}
}
}
// 西暦年を元号に変換。明治~平成まで。月のチェックをして...
function GetGengouY(year)
{
var i,ie,yy;
yy = '';
ie = gengouY.length;
for (i = ie ; i > 0 ; i--)
{
if (year >= gengouY[i])
{
yy = gengou[i] + (year - gengouY[i] + 1).toString(10) ...
break;
}
}
return yy;
}
// 移動祝日の日付計算(iwaiday[] の数字設定)
function Initvariable(year)
{
var i,j,day,tmp,mon;
for (i = 0; i < iwaiday.length ; i++) {
tmp = iwaiday[i] % 100;
if (tmp == 98) iwaiday[i] = 300 + Syunbun(year,3); // ...
if (tmp == 99) iwaiday[i] = 900 + Syunbun(year,9); // ...
if ((tmp > 31) && (tmp < 90)) {
mon = Math.floor(iwaiday[i] / 100);
day = tmp % 10;
tmp = (Math.floor(tmp / 10) - 4) * 7 + 1;
for (j = tmp; j < (tmp + 7); j++) { // 第何週の何曜日...
if (GetWeekDays(year,mon,j) == day) {
iwaiday[i] = mon * 100 + j;
break;
}
}
}
}
}
// 春分、秋分の日付の設定(iwaiday[] の数字設定)
function InitSyunbun(year,month)
{
var i,day,tmp;
i = 0;
day =0;
tmp = -9999;
if (month == 3) tmp = 398;
if (month == 9) tmp = 999;
if (tmp < 0) return;
for(i = 0; day < 5000 ; i++)
{
day = iwaiday[i];
if (day == tmp)
{
iwaiday[i] = Syunbun(year,month) + month * 100; // 春...
break;
}
}
}
// year,monthのカレンダを作る。today が 0以下なら、「今日...
// 月齢等の表示用に、拡張文字列挿入フラグ exflag & 挿入文...
// exflag が 1 なら、日付表示後に拡張文字列を挿入する 200...
// 2005年の昭和の日法案により、振替休日の扱い変更 2005.07...
function calender_main(wd,year,month,today,exflag,exstr)
{
var i,dflag,day,zeroday;
InitIwai(year); // 祝日日付配列の初期化
zeroday = Ymd2Jd(year,month,0) - Ymd2Jd(year,1,0); // 0 ...
dayend = GetMonthDays(year,month);
if (today <= 0) today = -99; // today が 0 以下なら、今...
wd.document.writeln('<table border bgcolor="#ffffaa">');
wd.document.writeln('<caption><strong>' + year + '年' + ...
for (i = 0; i < 7 ; i++)
{
if (i == 0) wd.document.write('<tr><th bgcolor="#ffaaaa...
else if (i == 6) wd.document.writeln('<th bgcolor="#aaa...
else wd.document.write('<th>' + WeekDays[i] + '</th>');
}
day = GetWeekDays(year,month,0); // 0日の曜日を求める(...
day = -day;
if (day == -6) day = 1; // 前月末日が土曜日なら先頭の空...
for (;;)
{
wd.document.write('<tr align="right">');
for (i = 0; i < 7 ; i++)
{
dflag = i;
if ((day >= 1) && (day <= dayend)) {
if (IDD[day + zeroday] >= 0) dflag = 0; // 祝日か休日
if (day == today) dflag = -1; // 今日です
}
if (dflag == -1) wd.document.write('<td bgcolor="#aaaa...
else if (dflag == 0) wd.document.write('<td bgcolor="#...
else if (dflag == 6) wd.document.write('<td bgcolor="#...
else wd.document.write('<td>');
if ((day >= 1) && (day <= dayend))
{
wd.document.write(day);
if (exflag == 1) // exflag = 1 なら、拡張文字列の挿入
{
wd.document.write(exstr);
}
}
else wd.document.write(' ');
wd.document.writeln('</td>');
day++;
}
wd.document.writeln('</tr>');
if (day > dayend) break;
}
wd.document.writeln('<tr bgcolor="#ffffff"><th align="le...
dflag = 0; // 祝日・休日の数を数える
for (day = 1; day <= dayend ; day++) {
if (IDD[day + zeroday] >= 0) {
wd.document.writeln('<tr bgcolor="#ffffff"><td>' + day...
dflag++;
}
}
if (dflag <= 0) {
wd.document.writeln('<tr bgcolor="#ffffff"><td align="l...
}
wd.document.writeln('</table>');
}
// year,monthのカレンダを作る。today が 0以下なら、「今日...
// 月齢等の表示用に、拡張文字列挿入フラグ exflag & 挿入文...
// ofswd はカレンダー表示の先頭曜日。
// exflag が 1 なら、日付表示後に拡張文字列を挿入する 200...
// 2005年の昭和の日法案により、振替休日の扱い変更 2005.07...
function calender2(wd,year,month,today,ofswd,exflag,exstr)
{
var WDF = new Array(' bgcolor="#ffaaaa"','','','','','',...
var i,dflag,day,zeroday;
var exi,day,firstWd,STflag;
InitIwai(year); // 祝日日付配列の初期化
zeroday = Ymd2Jd(year,month,0) - Ymd2Jd(year,1,0); // 0 ...
dayend = GetMonthDays(year,month);
if (today <= 0) today = -99; // today が 0 以下なら、今...
wd.document.writeln('<table border bgcolor="#ffffaa">');
wd.document.writeln('<caption><strong>' + year + '年' + ...
wd.document.write('<tr>');
for (i = 0; i < 7 ; i++) {
exi = (ofswd + i) % 7;
wd.document.write('<th' + WDF[exi] + '>' + WeekDays[exi...
}
wd.document.writeln('</tr>');
firstWd = GetWeekDays(year,month,1); // 1日の曜日を求め...
STflag = 0; // 第一日の前
day = 0;
while (STflag < 2) { // 2 なら終了
wd.document.write('<tr align="right">');
for (i = 0; i < 7 ; i++) {
exi = (ofswd + i) % 7;
if ((STflag == 0) && (exi == firstWd)) {
STflag = 1;
day = 1;
}
if (STflag == 1) {
if (IDD[day + zeroday] >= 0) exi = 0; // 祝日か休日
if (day == today) exi = 7; // 今日をマーク
wd.document.write('<td' + WDF[exi] + '>');
wd.document.write('' + day);
if (exflag == 1) // exflag = 1 なら、拡張文字列の挿入
{
wd.document.write(exstr);
}
day++;
if (day > dayend) STflag = 2;
} else {
wd.document.write('<td' + WDF[exi] + '> ');
}
wd.document.write('</td>');
}
wd.document.writeln('</tr>');
}
wd.document.writeln('<tr bgcolor="#ffffff"><th align="le...
dflag = 0; // 祝日・休日の数を数える
for (day = 1; day <= dayend ; day++) {
if (IDD[day + zeroday] >= 0) {
wd.document.writeln('<tr bgcolor="#ffffff"><td>' + day...
dflag++;
}
}
if (dflag <= 0) {
wd.document.writeln('<tr bgcolor="#ffffff"><td align="l...
}
wd.document.writeln('</table>');
}
// 現在のページに拡張表示文字列を挿入しないシンプルなカレ...
// 単に内部でcalender_main()を呼び出すだけ
function calender(YY,MM,DD)
{
calender_main(this,YY,MM,DD,0,"");
document.writeln(YY + ' : ' + MM + ' : ' + DD + ' <br>');
}
// -->
}}
***始まり自由カレンダー [#ra2df86e]
https://motto123.sakura.ne.jp/fc1.html
ページ名: