記事閲覧

− 野ざらし言 −

5481 Yushi版カレンダー和生拡張版の追加設定

めざら 2024/02/17(Sat) 13:16 http://mezala.la.coocan.jp/
祝日データの追加についてどこかに書いてあるかと思い込んでいたら,
令和対応データがどこにもないようなので,念の為まとめておきます。

とは言っても,複数箇所の書き換えが必要なため,現時点で使用している
Yushi版高速カレンダーの和生拡張版をそのまま貼り付けておくだけです。

版としては,当掲示板の #505 v1.06w (2005年改正祝日法対応版)
及び konno さんの今日のテーマ #6955 v1.08w (山の日対応)の次に
当たりますが,設定データ追加だけなので識別子(m)の付与にとどめます。

===== Calendar.def ===== v1.08wm : by Yushi / fixed wanama ζ゜ ;
(R)
 Yushi さんのモノクロ版カレンダー拡張版
 (オリジナル 旧FGALDC MES(16)#01496)
 ★▼など修正箇所
 2003年「海,敬老の日」第3月曜対応
    「9月飛石4連」見落とし(- ^;ゞ 法3条3項関連
 2005年「5月4連振替」対応 法3条2項関連
    「9月飛石4連」
 2016年「山の日」新設対応 改正祝日法 (五輪特措無視)
 2020年「天皇誕生日」(令和元年は5月開始のため2019年はなし) (m)
* M
1 ^\ "Calendar"
	(s>3)?.#]
	b10+t500+l0+pn..-27,
	&06 &Sm(b,r,19)
	b.19=-1, i36, (15){ b.i---, }
	ax$2a00, &i($21)
	t..3=y=cx, t.5=m=dx>>8, d=dx&$ff,
	w-, x+, U-, N=d, k='>',				;★
	
;	k-=32,						;;☆ {} → []
;	r$a000!=vp..1,					;;ifn 98
;	aa2+10*r,	;2←98	#if DOSV 12,		;;☆日曜色:赤
	aa12+10*r,	;2←98	#if DOSV 12,		;;☆日曜色:赤
;	ai[=3+10*r,	;3		 13,		;;☆祝日色:紫
;	af[=4/2*r,	;4		  2,		;;☆当日印:緑
	(ks&1)?>C					;★
:A	c-, b.16=24+w*44,				; メニュー幅
:B	y[, m[=m+c-w, &02 &03
;	&Sp(b+36+c*22,"   %4d 年  %2d 月   ",y,m)
;	r"janfebmaraprmayjunjulaugsepoctnovdec",	;★
;	r"JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC",	;★
	r"JanFebMarAprMayJunJulAugSepOctNovDec",	;★
	&Sp(b+36+c*22," %4d 年 %2d 月  %3s ",y,m,r+m*3-3)
	t..1=128*w,
	p=di=b+82+c*64-w*40,
	dx-, (w && c<2)?{ dx+, &Sc(b+56+c*22," ") }	;★"  "→"〜"
	g65+t..1,					;★アイテム幅
	bx=t, &07 &04	;&05				;;▼&05特別日
	(x)?a" 日 月 火 水 木 金 土   ",		;★
	   ?a" 月 火 水 木 金 土 日   ",		;★
	&Sc(b+57+c*22+44*w,a)				;★
	(y-t..3 || m-t.5)??{
		e=d, &01 e.0=k-2, e.9=k,		;★当日
		e.8='f',(a%7)? e.-1='f',		;;☆行頭 [ af 色
		(a%7 || c<1)?? e.-2='f',		;;☆
		}
	(U && c==w)?{ e=N, &01 e.3='s', }		;★日付カーソル
	
	m],y], (w && c++<3)?>B
	
	&m("[↑↓]年 [←→]月 [CR]幅変 [RLUP/DN]10年 $
	    [BS]今月 [TAB]出力 [INS]入力 [DEL]日印")	;★
	&Le(l,vp+118) &Le(vp+118,vp+110) &Le(vp+110,l)	;コマンドのすり替え
	wl[=6, rr[=b, &* rr], wl],	&d
	&Le(vp+110,vp+118) &Le(vp+118,l)
	(r+1)??{ 
;		af], ai],	;&m("")			;☆色 ★メッセージ
		&m("") &d		;メッセージラインの再表示(m)
		. }
	(r&$FF+$100)>!{
		(#s)	{ m-=1+w*2,&02 }; 月--,★3ヵ月表示時-=3
		(#d)	{ m+=1+w*2,&02 }; 月++,★	     +=3
		(#38)	y-=10,		; 10年-★
		(#37)	y+=10,		; 10年+★
		(#a)	y--,		; 年--,
		(#f)	y++,		; 年++,
		(256)	w!,		; 表示幅変更
		(#h)	>H		; 今月★
		(#v)	>C		; 入力★
		(#21)	>E		; 出力★
		(#n)	x!,		; 日/月スタート★
		(#g)	U!,		; 日付カーソルスイッチ★
		(#<)	{ N--, >u }	; 左へ★
		(#>)	{ N++, >u }	; 右へ★
		(#39)	{ N-=7,>u }	; 上へ★
		(#40)	{ N+=7,>u }	; 下へ★
;		(#X)	>x		; #79:\[ESC]★
	} >A

;:x	;af],ai], 
;	>09					;★

:u	&03 (N>t.1)?N=1, (N<1)?N=t.1, >A		;★

:C	&g("西暦(1583-)")	; グレゴリオ暦を採用した年(1582/10/15 以降)
	(r+1)??>A (r+2)??{ c=t..3, >D }
	(r<100)?r+=2000,				;★1900
	(r<1583)?{ &b(4) >C }
	c=r,
:D	&g("月 (1-12)")
	(r+1)??>A (r+2)??{ y=c, m=t.5, >A }
	(r<1 || r>12)?{ &b(4) >C }
	y=c, m=r,>A

:E	(U)?{ &08 >A }					;★
	(s || mr==$80)?{ &b(2) >A }
	Je[-, mi[-, El+, p36+b, c7,
	&s #n &?(" %s",p) #m
:F	&Sn(p) p+=r+1,
:G	&SF(p,'$') (a=r)?{
		(a.2=='i')?{ a.8='>',			;★祝日出力
		(a.-1=='>')?a.-1='_', ?a.-1='<', }	;★連休
		(a.8==k)?a.-1=a.8=32,			;★当日削除
		a.0-, &?("%s",p) p=a+3, >G }
	&?("%s",p) #m
	(c--)? >F
	&d mi], Je],	#g >A				;★出力月表示

:H	y=t..3, m=t.5,>A

1:	a=t.0+e-1, e=p+(a/7)*g+(a%7)*9,			;★開始/日付位置

2:	(m<1) ?{ m+=12, y--, }
	(m>12)?{ m%=12, y++, }

3:	; t.0=曜日  t.1=日数
	r" $(1F,1C,1F,1E,1F,1E,1F,1F,1E,1F,1E,1F)",
	(y%4 || y%100==0 && y%400)?r.2=28, ?r.2=29,	;★N.YAMA
	t.1=r.m, y[,m[, (m<3)?{ y--, m+=12, }
	t.0=(y+ y/4+ y/400+ (m*13+8)/5+ x- y/100)%7,	;★+ x-
	m],y],

4:	p+=w*128,					;★以下修正(4:)
	e=p,						;;☆土日着色
	:a	(e.58-'・')? e.57='a'+x,		;;☆(土曜 ab 限)
		(e.(49-x*45)-'・')? e.(48-x*45)='b'-x,	;;☆
		e+=g, ((e-p)/g<6)? >a			;;☆

	(y<2000 || m-1 && m-10)??{			;幸月曜 2000(成人,体育)
		e=p+(2-(t.0<1+x))*g+9*x, e.3='i', }	;+x,*x:日/月スタート
	(y<2003 || m-7 && m-9)??{			;幸月曜 2003(海,敬老)
		o=e=p+(3-(t.0<1+x))*g+9*x, e.3='i', }	;第3

	&>						;;☆祝日
;	r.14=20^e>>4, r.42=23^e&$f,			;;☆春秋分調整 1.06w
;	r.14=20^e>>4, r.46=23^e&$f,			;;☆春秋分調整 1.08w
			;151125//r.42→4bite◇◇山の日分
	r.18=20^e>>4, r.50=23^e&$f,			;;☆春秋分調整 1.08wm
			;200123//r.14,r.46→4bytes◇◇令和天皇誕生日分
:A	(r.1>m)?.
	e=r.2, r[, &01 r],
	(r.0<y-1899 && r.1==m
	&& (r.3==0 || r.3>y-1900) )?{			;終了年 r.3
		e.3='i',
		(y<1973 || y==1973 && m<4)??{		;振替制 1973.4
			(x && a%7==0)? e.12='i',	;日から
			(x || a%7-6)?? e.(g-51)='i', }	;月から
		(y<2006 || m-5)??{			;法3条2項2007◆◆
			(x &&(a==8 || a==9))? e.12='i',	;日/月スタート◆◆
			(x ||(a-7&&a-8))?? e.(g-53)='i',};	       ◆◆
		(y<2003 || m-9 || o.21-'i')?? o.12='i',	;法3条3項2003◆◆
				;日付行, e:書込アドレス,a:数字開始位置◆◆
		}
	r+=4, >A

4:	; 固定祝日テーブル (開始年,月,日,廃止年 1900年起点)	★変更
	;	49-0101-     49-0115~100 67-0211-    春分.14-	↓
	;	49-0101-     49-0115~100 67-0211-    2020~0223~	春分.18- (m)
	;	48-0429-     49-0503-	 86-0504-    49-0505-
	;	96-0720~103 116-0811-	 66-0915~103 秋分.42-	↓★2016山の日
	;	96-0720~103 116-0811-	 66-0915~103 秋分.50- (m)
	;	66-1010~100  48-1103-	 48-1123-    89-1223-
	&> e=r.(y-1948),
	(3+$)."$(31,01,01,00,31,01,0f,64,43,02,0b,00,78,02,17,00,31,03,14,fb)$
	       $(31,04,1d,00,31,05,03,00,56,05,04,00,31,05,05,00)$
	       $(60,07,14,67,74,08,0b,00,42,09,0f,67,30,09,17,fb)$
	       $(42,0a,0a,64,30,0b,03,00,30,0b,17,00,59,0c,17,77)",

4:	; 春分・秋分差分テーブル(1948-2150)			★追加
	(3+$).	"$(10,10,10)$
	$(1f,10,10,10,1f,10,10,10,1f,00,10,10,1f,00,10,10,1f,00,10,10)$
	$(1f,00,10,10,1f,00,10,10,1f,00,10,10,10,00,10,10,10,00,10,10)$
	$(10,00,00,10,10,00,00,10,10,00,00,10,10,00,00,10,10,00,00,10)$
	$(10,01,00,10,10,01,00,10,10,01,00,10,10,01,00,00,10,01,00,00)$
	$(10,01,00,00,10,01,00,00,10,01,00,00,10,01,01,00,10,01,01,00)$
	$(10,01,01,00,10,01,01,00,00,01,01,00,00,01,01,00,00,01,01,00)$
	$(00,01,01,00,00,01,01,01,00,01,01,01,00,01,01,01,00,01,01,01)$
	$(00,71,01,01,00,71,01,01,00,00,10,10,1f,00,10,10,1f,00,10,10)$
	$(10,00,10,10,10,00,10,10,10,00,10,10,10,00,00,10,10,00,00,10)$
	$(10,00,00,10,10,00,00,10,10,01,00,10,10,01,00,10,10,01,00,10)"

;5:	; 特別日とテーブル(祝日重複の場合祝日出力せず);▼追加
;	&>  :r	(r.1>m)?. e=r.2, r[, &01 r],
;		(r.0<y-1899 && r.1==m)?e.3='m', r+=4, >r
;5:	(3+$)."$(48,03,0b,00)",				;サンプル

6:	(2+$)."$(a,0,ff,ff,0)!01(r)$(0,e1,6,0,0,7)"	; &34+!01h
7:	&i(3+$)."$
	$(B1,01,EB,19,FE,C1,8A,C1,32,E4,B5,07,F6,F5,80,FC)$
	$(01,75,11,B0,20,80,FA,00,75,02,32,C0,AA,03,7F,02)$
	$(B8,20,00,AA,B0,24,AA,B8,61,6E,AB,8A,C1,2A,07,3A)$
	$(47,01,77,04,3C,01,79,06,B8,a5,a5,AB,EB,10,32,E4)$
	$(50,B5,0A,F6,F5,E8,16,00,8A,C4,E8,11,00,58,B0,24)$
	$(AA,B8,61,6E,AB,B0,20,AA,80,F9,2B,72,A7,C3,04,30)$
	$(AA,C3)"

;8:	a"calendar.lst",				;★
;	&So(wa+146,a) (r)?{ &>.}
;	&s #O &?("%s%s",pi,a) #m #^			;calendar.lst オープン
;	mp[, ps[=pa, #F &?("%2d月%02d日",m,N) #m
;	#c (r)?>z #b
;:r	#c (r)??>r #x #B 
;:z	ps],mp], &d mb-,

8:	m[,y[, (m<3)?{ m+=12, y--, } #n			;★日付出力
	r"日月火水木金土"+
	  2*((y +y/4 +y/400 +(m*13+8)/5 +N -y/100)%7),
	&?("%d年%2d月%2d日(%2s)",y],m],N,r) #]

;9:	(wa)??. ss2, (s)>?{ #E . >a #H .}		;暦ソフト連動
;	a"b:\tl\when\WhenHV /wged",			;★WhenHV とサンプル
;:a	&?("%s %d %02d %02d",a,y,m,N) #m
;	a"b:\tl\today\TODAY -aP",			;★TODAY の場合
:a	&?("%s %d%02d%02d",a,y,m,N) #m
;	#[ (wn)?#X #_ ky-,
;	mp[, ps[=pa, #F &?(a) #m #r #z ps],mp],
;	;#b #_ #e #y #X #i				;取り込み
;	&d
*
===== used y,m,d,w,c,p,t,b,l,i,a,e &+ aa,g,k,x,U,N,o

関連記事一覧ツリー (▼ を押すとツリー全体を一括表示します)

- 5481.Yushi版カレンダー和生拡張版の.. - めざら 24/02/17-13:16

返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

おなまえ :
Eメール :
タイトル :
メッセージ: 通常モード(推奨)  整形モード(非推奨)  preモード(空白再現)
※ プログラムコード等を含まない場合は,できるだけ通常モードをご利用ください。

参照先 :
暗証キー: (英数字で8文字以内) プレビューなし


- 以下のフォームから自分の投稿記事を修正・削除することができます -

処理 記事No. 暗証キー