初心者のFileMaker pro Q&A

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。

何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

ログインしていません。

アナウンス

#1 2018-05-13 18:33:13

Hiro
メンバー

★★ 待望?の直書き型「ToDoカレンダ」テンプレートを公開 ★★

カレンダー上に直接スケジュール書込みできるタイプの新型「ToDoカレンダ」テンプレートを公開します。
従来の「繰り返しフィールド」を利用する方法から、「条件フィルター付きポータル」へ替えることで、
待望だった任意時刻別複数スケジュールの「直書き」機能を実現しています。

●テンプレート「ToDoカレンダ(直書込み型、ユーザ別).fmp12」→ https://yahoo.jp/box/9tua3J


※【空データベースの初期起動時の注意】
サンプルデータを全て削除した無レコード状態からの最初の1レコード作成だけは、
カレンダー画面からでなく、一覧表画面から標準的手作業でデータ入力下さい。
2つ目以降のレコードは通常通りカレンダー画面からの入力が可能です。

編集者 Hiro (2018-06-02 14:40:22)

オフライン

#2 2018-05-14 15:07:48

マギー
ゲストユーザー

Re: ★★ 待望?の直書き型「ToDoカレンダ」テンプレートを公開 ★★

いつも参考にさせて頂いております!
ひょんな疑問なのですが、カレンダーレイアウトを画面の真ん中に『固定表示』されていますが、これはどのようにされていますでしょうか?
ご教授下さいますと幸いです。

#3 2018-05-14 15:36:39

Hiro
メンバー

Re: ★★ 待望?の直書き型「ToDoカレンダ」テンプレートを公開 ★★

> カレンダーレイアウトを画面の真ん中に『固定表示』されていますが、
ヘッダ・パートだけにして、すべてのオブジェクトの全アンカーを解除。

オフライン

#4 2018-05-15 18:50:13

Hiro
メンバー

Re: ★★ 待望?の直書き型「ToDoカレンダ」テンプレートを公開 ★★

【修正履歴】
●18/05/15  6:50
・カレンダー・ポータルをスクロールした状態で、月移動すると、
   データ表示されないバグを修正しました。

オフライン

#5 2018-06-01 23:21:51

ころ
ゲストユーザー

Re: ★★ 待望?の直書き型「ToDoカレンダ」テンプレートを公開 ★★

Hiro様
大変ありがとうございます。
いつも勉強させていただいております。

もし可能でしたら、祝祭日の表示も出来たらと思います。
どのようにしたら良いでしょうか?
どうぞよろしくお願い申し上げます。

#6 2018-06-02 01:32:45

Hiro
メンバー

Re: ★★ 待望?の直書き型「ToDoカレンダ」テンプレートを公開 ★★

>#5 祝祭日の表示も出来たらと・・・・

祝祭日の基礎データが別途必要です。
fmpro.jpサイトに日本の公的祝祭日を自動算出する
カスタム関数が公開してあったのですが、
今調べたら、サイトが無くなってしまったようです。
メンバーのShinさんも関数公開されておられましたが、
近況や情報など何かご存じありませんか?

オフライン

#7 2018-06-02 03:18:44

札幌太郎
ゲストユーザー

Re: ★★ 待望?の直書き型「ToDoカレンダ」テンプレートを公開 ★★

/*==============================================================

  カスタム関数	HolidayJ ( 日付 ) 

  CopyRight©2004-2015,SHAMOTO Syuji
  <http://www.FMPro.jp>
  
  指定された日付が祝日の場合、祝日名を得ます。(2014年5月23日現在)
  
  対象範囲
  国民の祝日に関する法律(祝日法)の施行された1948(昭和23)年7月20日以降
  (振替休日は1973(昭和48)年4月12日制定・施行)
  春分・秋分の簡易計算の出来る範囲(1851〜2150)
  春分・秋分の日の計算は「新こよみの便利帳 」(恒星社厚生閣刊) による
  祝日としての春分・秋分の日は閣議で決定され前年の2月の官報に公示される。
  
  このカスタム関数を引用するに当たっては、必ずコメントも一緒に引用してください。

=============================================================*/

Let ( 

	[  // === Let_Start ==================================

	~theDate = 日付 ; 
	~year = Year ( ~theDate ) ; 			// ~theDate の年

	// 春分
	~shunbun = 
		Case (
			~year ≤ 1899 and ~year ≥ 1851; 
				Date ( 3 ; Int ( 19.8277 + .242194 * ( ~year - 1980 ) - Int ( ( ~year - 1983 ) / 4 ) ) ; ~year ) ; 
			~year ≤ 1979; 
				Date ( 3 ; Int ( 20.8357 + .242194 * ( ~year - 1980 ) - Int ( ( ~year - 1983 ) / 4 ) ) ; ~year ) ; 
			~year ≤ 2099; 
				Date ( 3 ; Int ( 20.8431 + .242194 * ( ~year - 1980 ) - Int ( ( ~year - 1980 ) / 4 ) ) ; ~year ) ; 
			~year ≤ 2150; 
				Date ( 3 ; Int ( 21.851 + .242194 * ( ~year - 1980 ) - Int ( ( ~year - 1980 ) / 4 ) ) ; ~year )
		) ; 
	// 秋分
	~shuubun = 
		Case (
			~year ≤ 1899 and ~year ≥ 1851; 
				Date ( 9; Int ( 22.2588+.242194* ( ~year - 1980 ) - Int ( ( ~year -1983 ) / 4 ) ) ; ~year ) ; 
			~year ≤ 1979; 
				Date ( 9; Int ( 23.2588+.242194* ( ~year - 1980 ) - Int ( ( ~year - 1983 ) / 4 ) ) ; ~year ) ; 
			~year ≤ 2099; 
				Date ( 9; Int ( 23.2488+.242194* ( ~year - 1980 ) - Int ( ( ~year - 1980 ) / 4 ) ) ; ~year ) ; 
			~year ≤ 2150; 
				Date ( 9; Int ( 24.2488+.242194* ( ~year - 1980 ) - Int ( ( ~year - 1980 ) / 4 ) ) ; ~year )
		) ; 

// === HOLIDAYLIST START ==============================

	~holidayList = 

	//
	// 祝日名<改行> 日付 <改行>の形式のリスト
	// システム書式にとらわれないようにするために、( 日付 * 1 ) で 日付 を数値化
	//

	"祝日" & "¶¶" & 
	Case (
		~year ≥ 1948 and ~year ≤ 2150 ; 

	//
	// 元旦(1月1日)1948.07.20制定
	// New Year's Day (Gantan)
	//

		"元旦¶" & 
		Case ( ~year ≥ 1949 ; Date ( 1 ; 1 ; ~year ) * 1 ) & ¶ & 

	//
	// 成人の日(1月15日)1948.07.20制定
	// 成人の日(1月第2月曜)1998.10.21制定 2000.01.01施行
	// Coming of Age Day (Seijin-no-hi)
	//

		"成人の日¶" & 
		Case (
			~year ≥ 2000; 
				Date ( 1 ; 15 - DayOfWeek ( Date ( 1 ; 6 ; ~year ) ) ; ~year ) ; 
			~year ≥ 1949; 
				Date ( 1 ; 15 ; ~year ) 
		) * 1 & ¶ & 

	//
	// 建国記念の日(2月11日)1966.6.25制定
	// National Foundation Day (Kenkoku-kinen-no-hi)
	//

		"建国記念の日¶" & 
		Case ( ~year ≥ 1967 ; Date ( 2 ; 11 ; ~year ) * 1 ) & ¶ & 

	//
	// 春分の日(春分日)1948.07.20制定
	// Vernal Equinox (Shunbun-no-hi)
	//

		"春分の日¶" & 
		~shunbun * 1 & ¶ & 

	//
	// 天皇誕生日(4月29日)1948.07.20制定
	// Emperor's Birthday (Tennou-tanjyou-bi)
	//

		"天皇誕生日¶" & 
		Case ( ~year ≥ 1949 and ~year ≤ 1988 ; Date ( 4 ; 29 ; ~year ) * 1 ) & ¶ & 

	//
	// みどりの日(4月29日)1989.02.17制定
	// Greenery Day (Midori-no-hi)
	//

		"みどりの日¶" & 
		Case ( ~year ≥ 1989 and ~year ≤ 2006 ; Date ( 4 ; 29 ; ~year ) * 1 ) & ¶ & 

	//
	// 昭和の日(4月29日)2005.05.20制定 2007.01.01施行
	// Showa's Day (Showa-no-hi)
	//

		"昭和の日¶" & 
		Case ( ~year ≥ 2007 ; Date ( 4 ; 29 ; ~year ) * 1 ) & ¶ & 

	//
	// 憲法記念日(5月3日)1948.07.20制定
	// Constitution Memorial Day (Kenpou-kinen-bi)
	//

		"憲法記念日¶" & 
		Case ( ~year ≥ 1949 ; Date ( 5 ; 3 ; ~year ) * 1 ) & ¶ & 
	
	//
	// 国民の休日 1985.12.27制定
	// Holiday for a Nation (Kokumin-no-kyujitsu)
	
	// 国民の祝日に関する法律 第3条3項(1985.12.27施行)
	// その前日及び翌日が「国民の祝日」である日
	// (日曜日にあたる日及び前項に規定する休日にあたる日を除く。)
	// は、休日とする。
	// 「国民の休日」は通称名
	// ※振り替え休日が優先されるので国民の休日が月曜日になることはない。
	//

		"国民の休日¶" & 
		Case (
			~year ≥ 1986  and ~year ≤ 2006 and DayOfWeek ( Date ( 5 ; 4 ; ~year ) ) ≥ 3 ; 
				Date ( 5 ; 4 ; ~year )
		) * 1 & ¶ & 

	//
	// みどりの日(5月4日)2005.05.20制定 2007.01.01施行
	// Greenery Day (Midori-no-hi)
	//

		"みどりの日¶" & 
		Case ( ~year ≥ 2007; Date ( 5; 4; ~year ) * 1 ) & ¶ & 

	//
	// こどもの日(5月5日)1948.07.20制定
	// Children's Day (Kodomo-no-hi)
	//

		"こどもの日¶" & 
		Case ( ~year ≥ 1949 ; Date ( 5 ; 5 ; ~year ) * 1 ) & ¶ & 

	//
	// 海の日(7月20日)1995.03.08制定 1996.01.01施行
	// 海の日(7月第3月曜日)2001.06.22制定 2003.01.01施行
	// Marine Day (Umi-no-hi)
	//

		"海の日¶" & 
		Case (
			~year ≥ 2003 ; 
				Date ( 7 ; 22 - DayOfWeek ( Date ( 7 ; 6 ; ~year ) ) ; ~year ) ; 
			~year ≥ 1996 ; 
				Date ( 7 ; 20 ; ~year )
		) * 1 & ¶ & 

	//
	// 山の日(8月11日)2014.05.23制定
	// Mountain Day (Yama-no-hi)
	//

		"山の日¶" & 
		Case ( ~year ≥ 2016 ; Date ( 8 ; 11 ; ~year ) * 1 ) & ¶ & 

	//
	// 敬老の日(9月15日)1966.06.25制定
	// 敬老の日(9月第3月曜日)2001.06.22制定 2003.01.01施行
	// Respect for the Aged Day (Keirou-no-hi)
	//

		"敬老の日¶" & 
		Case (
			~year ≥ 2003 ; 
			Date ( 9 ; 22 - DayOfWeek ( Date ( 9 ; 6 ; ~year ) ) ; ~year ) ; 
			~year ≥ 1966 ; 
			Date ( 9 ; 15 ; ~year ) 
		) * 1 & ¶ & 

	//
	// 国民の休日
	// Holiday for a Nation (Kokumin-no-kyujitsu)
	// 敬老の日が第3月曜日に改正されたことにより派生
	// 秋分の日が水曜日になる年
	// 2009,2015,2026,2032,2037,2043,2049,2054,2060,2071,2077,
	// 2088,2094,2099,2105,2111,2116,2122,2133,2139,2150...
	//

		"国民の休日¶" & 
		Case ( 
			~year ≥ 2003 and 
			~shuubun -2 = Date ( 9 ; 22 - DayOfWeek ( Date ( 9 ; 6 ; ~year ) ) ; ~year ) ; 
				~shuubun -1 
		) * 1 & ¶ & 

	//
	// 秋分の日(秋分日)1948.07.20制定
	// Autumnal Equinox (Shuubun-no-hi)
	//

		"秋分の日¶" & 
		~shuubun * 1 & ¶ & 

	//
	// 体育の日(10月10日)1966.06.25制定
	// 体育の日(10月第2月曜日)1998.10.21制定 2000.01.01施行
	// Health and Sports Day (Taiku-no-hi)
	//

		"体育の日¶" & 
		Case (
			~year ≥ 2000 ; 
				Date ( 10 ; 15 - DayOfWeek ( Date ( 10 ; 6 ; ~year ) ) ; ~year ) ; 
			~year ≥ 1966; 
				Date ( 10 ; 10 ; ~year ) 
		) * 1 & ¶ & 

	//
	// 文化の日(11月3日)1948.07.20制定
	// National Culture Day (Bunka-no-hi)
	//

		"文化の日¶" & 
		Case ( ~year ≥ 1948 ; Date ( 11 ; 3 ; ~year ) * 1 ) & ¶ & 

	//
	// 勤労感謝の日(11月23日)1948.07.20制定
	// Labor Thanksgiving Day (Kinrou-kansha-no-hi)
	//

		"勤労感謝の日¶" & 
		Case ( ~year ≥ 1948 ; Date ( 11 ; 23 ; ~year ) * 1 ) & ¶ & 

	//
	// 天皇誕生日(12月23日)1989.02.17制定
	// Emperor's Birthday (Tennou-tanjyou-bi)
	//

		"天皇誕生日¶" & 
		Case ( ~year ≥ 1989 ; Date ( 12 ; 23 ; ~year ) * 1 ) & ¶ & 

	//
	// 皇太子明仁親王の結婚の儀(昭和34年4月10日)
	// The Rite of Wedding of His Imperial Highness Crown Prince Akihito
	// (Koutaishi-AKIHITO-shinno-no-kekkonn-no-gi)
	//

		"皇太子明仁親王の結婚の儀¶" & 
		Case ( ~year = 1959 ; Date ( 4 ; 10 ; ~year ) * 1 ) & ¶ & 

	//
	// 昭和天皇の大喪の礼(平成元年2月24日)
	// The Funeral Ceremony of Emperor Showa
	// (SHOWA-tennou-no-taisou-no-rei)
	//

		"昭和天皇の大喪の礼¶" & 
		Case ( ~year = 1989 ; Date ( 2 ; 24 ; ~year ) * 1 ) & ¶ & 

	//
	// 即位礼正殿の儀(平成2年11月12日)
	// The Ceremony of the Enthronement of His Majesty the Emperor (at the Seiden)
	// (Sokuirei-seiden-no-gi)
	//

		"即位礼正殿の儀¶" & 
		Case ( ~year = 1990 ; Date ( 11 ; 12 ; ~year ) * 1 ) & ¶ & 

	//
	// 皇太子徳仁親王の結婚の儀(平成5年6月9日)
	// The Rite of Wedding of His Imperial Highness Crown Prince Naruhito
	// (Koutaishi-NARUHITO-shinno-no-kekkonn-no-gi)
	//

		"皇太子徳仁親王の結婚の儀¶" & 
		Case ( ~year = 1993 ; Date ( 6 ; 9 ; ~year ) * 1 ) & ¶ 

	) ; 
// === HOLIDAYLIST END ================================

	//
	// ~holidayList 内の ~theDate の位置
	//

	~theDatePosition = Position ( ~holidayList ; ( ~theDate * 1 ) ; 1 ; 1 ) ; 

	//
	// ~theDate に対する祝日名の書かれた行が ~holidayList の何行目か
	//

	~line = PatternCount ( Left ( ~holidayList ; ~theDatePosition ) ; ¶ ) 

	] ;  // === Let_End ==================================

	//
	// 祝日名( ~holidayList の ~line( ~theDate の一つ前)の行 )
	//

	Case ( 
		not IsEmpty ( ~theDate ) ; 
			Case (
				// ~theDate が ~holidayList に含まれる場合
				PatternCount ( ~holidayList ; ( ~theDate * 1 ) ) ; 
					Substitute ( MiddleValues ( ~holidayList ; ~line ; 1 ) ; ¶ ; "" ) ; 

				// 
				// 2005.05.20 の法改正で
				// 「国民の祝日」が日曜日に当たるときは、その日後においてその日に最も近い「国民の祝日」でない日を休日とする。
				// と振替休日の定義が変更になっている
				// 
				
				// 5月3日、5月4日が日曜日の場合は5月6日は振替休日
				
				~theDate ≥ Date ( 1 ; 1 ; 2007 ) and 
				~theDate  = Date ( 5 ; 6 ; ~year ) and 
				(
					DayOfWeek ( Date ( 5 ; 3 ; ~year ) ) = 1 or 
					DayOfWeek ( Date ( 5 ; 4 ; ~year ) ) = 1
				) ; 
					"振替休日" ; 

				//
				// 振り替え休日(1973(昭和48)年4月12日施行)
				// Substitute Holiday
				//

				// ~theDate が月曜日でかつ ~theDate の前日が ~holidayList に含まれる場合
				~theDate ≥ Date ( 4 ; 12 ; 1973 ) and 
				DayOfWeek ( ~theDate ) = 2 and 
				PatternCount ( ~holidayList; ( ~theDate * 1 ) - 1 ) ; 
					"振替休日" 
		) 
	) 
) 

/*============================================================*/
// ©2004-2015,SHAMOTO Syuji <http://www.FMPro.jp>

#8 2018-06-02 08:49:42

Shin
メンバー

Re: ★★ 待望?の直書き型「ToDoカレンダ」テンプレートを公開 ★★

FMPro は、サーバーが古くなったとの事で、時々メンテナンスしているけど、そのまま消滅にするつもり、と管理の方が以前言っておられました。

https://www.dropbox.com/s/6mggng0fsrdir … t.zip?dl=0
来年の祝日は不確定ですので、別に処理しないといけないようで、対応できていません。来年、再来年の体育の日、はどうなるんでしょうね。

編集者 Shin (2018-06-02 15:59:10)

オフライン

#9 2018-06-02 13:19:08

Hiro
メンバー

Re: ★★ 待望?の直書き型「ToDoカレンダ」テンプレートを公開 ★★

>#8 Shinさん https://www.dropbox.com/s/c2g6dq92gnhxa … t.zip?dl=0
DLリンク公開ありがとうございます。

ただ(Winだから?)、DL.zipファイルは文字化け・改行問題が発生し、
かと言って、Web画面からの直接コピーもサイト規制されているようです。

#7札幌太郎さん紹介のSHAMOTOカスタム関数式のように、
直接ここにコード公開される、とか?

編集者 Hiro (2018-06-02 13:54:49)

オフライン

#10 2018-06-02 15:56:26

Shin
メンバー

Re: ★★ 待望?の直書き型「ToDoカレンダ」テンプレートを公開 ★★

ファイルは、UTF-8 Unix 仕様でした。UTF-16 CRLF に変更してあります。

2019年以降は未確定ですが、5月1日は即位礼正殿の儀として休日か祝日になり、12月23日は2019年以降は平日になるようです。2020年は、オリンピック関連で、祝日が変更になる可能性があるようです。

// カスタム関数	workday ( calcdate ; regularHoliday ; halfHoliday ; halfHoliday1 ; halfHoliday2 ; halfHoliday3 ; halfHoliday4 ; halfHoliday5 ; mayDay )
//
// 概要 : 与えられた日が休日であれば 0 を、それ以外ならば 1 を返します。
//
//  calcdate : 計算対象の日付
//  regularHoliday : 定休曜日(日曜日 : 1 ; 月曜日 : 2 ; 火曜日 : 3 ; 水曜日 : 4 ; 木曜日 : 5 ; 金曜日 : 6 ; 土曜日 : 7)
//  halfHoliday : 半休曜日(日曜日 : 1 ; 月曜日 : 2 ; 火曜日 : 3 ; 水曜日 : 4 ; 木曜日 : 5 ; 金曜日 : 6 ; 土曜日 : 7)
//  halfHoliday1 : 第1半休曜日(休日 : 0 ; 営業日 : 1)
//  halfHoliday2 : 第2半休曜日(休日 : 0 ; 営業日 : 1)
//  halfHoliday3 : 第3半休曜日(休日 : 0 ; 営業日 : 1)
//  halfHoliday4 : 第4半休曜日(休日 : 0 ; 営業日 : 1)
//  halfHoliday5 : 第5半休曜日(休日 : 0 ; 営業日 : 1)
//  mayDay : メーデー[5月1日](休日 : 0 ; 営業日 : 1)
//
// 例 日曜日が定休日、第1、第3、第5土曜日が休日、メーデーは休日の設定
// workday ( calcdate ; 1 ; 7 ; 0 ; 1 ; 0 ; 1 ; 0 ; 0 )
//
// 作者 : Shin all right reserved ©️1998-2018

Let (
[
 cd = calcdate ;
 rH = regularHoliday ; 
 hH = halfHoliday ;
 hH1 = halfHoliday1 ;
 hH2 = halfHoliday2 ;
 hH3 = halfHoliday3 ;
 hH4 = halfHoliday4 ;
 hH5 = halfHoliday5 ;
 mD = mayDay ;
 Y = Year ( cd ) ; 
 M = Month ( cd ) ; 
 D = Day ( cd ) ;
 W = DayOfWeek ( cd ) 
] ;

Case ( 
Y < 1948 ; "" ; 
Y ≥ 2100 ; "" ; 

/*元日と3が日*/

M = 1 and D = 1 ; 0 ; 
M = 1 and D = 2 ; 0 ; 
M = 1 and D = 3 ; 0 ; 

/*成人の日*/

M = 1 and Y < 2000 and D = 15 ; 0 ; 
M = 1 and Y > 1973 and Y < 2000 and D = 16 and W = 2 ; 0 ; 
M = 1 and Y > 1999 and Int ( ( D + 6 ) / 7 ) = 2 and W = 2 ; 0 ; 

/*建国記念の日*/

M = 2 and D = 11 and Y ≥ 1966 ; 0 ; 
M = 2 and D = 12 and Y ≥ 1974 and W = 2 ; 0 ; 

/*天皇誕生日*/

M = 2 and Y > 2019 and D = 23 ; 0 ; 
M = 2 and Y > 2019 and D = 24 and W = 2 ; 0 ; 

/*昭和天皇の大喪の礼*/

M = 2 and D = 24 and Y = 1989 ; 0 ; 

/*春分の日*/

M = 3 and Y < 1980 and D = Int ( 20.8357 + .242194* ( Y - 1980 ) - Int ( ( Y - 1983 ) / 4 ) ) ; 0 ; 
M = 3 and Y < 1979 and Y > 1973 and D = Int ( 20.8357 + .242194* ( Y - 1980 ) - Int ( ( Y - 1983 ) / 4 ) ) + 1 and W = 2 ; 0 ; 
M = 3 and Y < 2100 and D  = Int ( 20.8431 + .242194* ( Y - 1980 ) - Int ( ( Y - 1980 ) / 4 ) ) ; 0 ; 
M = 3 and Y < 2100 and Y > 1973 and D = Int ( 20.8431 + .242194* ( Y - 1980 ) - Int ( ( Y - 1980 ) / 4 ) ) + 1 and W = 2 ; 0 ; 

/*天皇誕生日 (昭和天皇)、みどりの日、昭和の日*/

M = 4 and D = 29 ; 0 ; 
M = 4 and D = 30 and Y > 1972 and W = 2 ; 0 ; 

/*即位礼正殿の儀*/

M = 4 and Y = 2019 and D = 30 ; 0 ; 
M = 5 and Y = 2019 and D = 1 ; 0 ; 
M = 5 and Y = 2019 and D = 2 ; 0 ; 

/*メーデー*/

M = 5 and D = 1 and mD = 0 ; 0 ; 

/*憲法記念日*/

M = 5 and D = 3 ; 0 ; 

/*休日、みどりの日*/

M = 5 and Y > 1984 and D = 4 ; 0 ; 
M = 5 and Y > 1972 and D = 4 and W = 2 ; 0 ; 

/*こどもの日*/

M = 5 and D = 5 ; 0 ; 
M = 5 and Y > 1972 and D = 6 and W = 2 ; 0 ; 
M = 5 and Y > 2005 and D = 6 and W = 3 ; 0 ; 
M = 5 and Y > 2005 and D = 6 and W = 4 ; 0 ; 

/*皇太子徳仁親王の結婚の儀*/

M = 6 and D = 9 and Y = 1993 ; 0 ; 

/*海の日*/

M = 7 and D = 20 and Y ≥ 1996 and Y < 2003 ; 0 ; 
M = 7 and D = 23 and Y = 2020 ; 0 ; 
M = 7 and Int ( ( D + 6 ) / 7 ) = 3 and Y > 2002 and Y ≠ 2020 and W = 2 ; 0 ; 

/*山の日*/

M = 8 and D = 10 and Y = 2020 ; 0 ; 
M = 8 and D = 11 and Y ≥ 2016 and Y ≠ 2020 ; 0 ; 
M = 8 and D = 12 and Y ≥ 2016 and W = 2 ; 0 ;  

/*敬老の日*/

M = 9 and Y < 2003 and D = 15 ; 0 ; 
M = 9 and Y > 1972 and Y < 2003 and D = 16 and W = 2 ; 0 ; 
M = 9 and Y > 2002 and Int ( ( D + 6 ) / 7 ) = 3 and W = 2 ; 0 ; 

/*秋分の日*/

M = 9 and Y < 1980 and D = Int ( 23.2588 + .242194* ( Y - 1980 ) - Int ( ( Y - 1983 ) / 4 ) ) ; 0 ; 
M = 9 and Y < 1980 and Y > 1973 and D = Int ( 23.2588 + .242194* ( Y - 1980 ) - Int ( ( Y - 1983 ) / 4 ) ) + 1 and W = 2 ; 0 ; 
M = 9 and Y < 2100 and D = Int ( 23.2488 + .242194* ( Y - 1980 ) - Int ( ( Y - 1980 ) / 4 ) ) ; 0 ; 
M = 9 and Y < 2100 and Y > 1973 and D = Int ( 23.2488 + .242194* ( Y - 1980 ) - Int ( ( Y - 1980 ) / 4 ) ) + 1 and W = 2 ; 0 ; 
M = 9 and Y < 2100 and Y > 1984 and D = Int ( 23.2488 + .242194* ( Y - 1980 ) - Int ( ( Y - 1980 ) / 4 ) ) - 1 and W = 3 ; 0 ; 

/*体育の日*/

M = 7 and D = 24 and Y = 2020 ; 0 ; 
M = 10 and Y < 2000 and D = 10 ; 0 ; 
M = 10 and Y > 1972 and Y < 2000 and D = 11 and W = 2 ; 0 ; 
M = 10 and Y > 1999 and Y ≠ 2020 and Int ( ( D + 6 ) / 7 ) = 2 and W = 2 ; 0 ;

/*文化の日*/

M = 11 and D = 3 ; 0 ; 
M = 11 and Y > 1972 and D = 4 and W = 2 ; 0 ; 

/*即位礼正殿の儀*/

M = 11 and Y = 1990 and D = 12 ; 0 ; 

/*勤労感謝の日*/

M = 11 and D = 23 ; 0 ; 
M = 11 and Y > 1972 and D = 24 and W = 2 ; 0 ; 

/*天皇誕生日 平成天皇*/

M = 12 and Y > 1988 and Y < 2019 and D = 23 ; 0 ; 
M = 12 and Y > 1988 and Y < 2019 and D = 24 and W = 2 ; 0 ; 

/*年末休暇*/

M = 12 and D = 29 ; 0 ; 
M = 12 and D = 30 ; 0 ; 
M = 12 and D = 31 ; 0 ; 

/*定休日*/

W = rH ; 0 ; 

/*半ドン*/

W = hH ; 
Case ( 
D ≤  7 ; hH1 ; 
D ≤ 14 ; hH2 ; 
D ≤ 21 ; hH3 ; 
D ≤ 28 ; hH4 ; 
hH5
) ; 
1
)
)

編集者 Shin (2018-06-13 13:19:35)

オフライン

#11 2018-06-03 05:53:41

Hiroさんへ
ゲストユーザー

Re: ★★ 待望?の直書き型「ToDoカレンダ」テンプレートを公開 ★★

別々の月を確認したいと思い、ウインドウを新しく開いたですが別々の月が表示されずに、同じ月になってしまいます。
別々の月を確認することはできないのでしょうか?

#12 2018-06-03 12:10:01

Hiro
メンバー

Re: ★★ 待望?の直書き型「ToDoカレンダ」テンプレートを公開 ★★

> #11 ウインドウを新しく開いたですが 別々の月が表示されず

残念ながら、そのマルチウインドウ機能は技術的に非常に難しいです。

編集者 Hiro (2018-06-03 13:18:02)

オフライン

#13 2018-06-04 10:20:23

Hiroさんへ
ゲストユーザー

Re: ★★ 待望?の直書き型「ToDoカレンダ」テンプレートを公開 ★★

Hiro 様

FileMaker の限界なのですね...
ありがとうございました。。。

#14 2018-06-13 13:21:52

Shin
メンバー

Re: ★★ 待望?の直書き型「ToDoカレンダ」テンプレートを公開 ★★

2020年の休日が確定したようです。
https://www.dropbox.com/s/6mggng0fsrdir … t.zip?dl=0

オフライン

#15 2018-06-16 15:19:21

Hiro
メンバー

Re: ★★ 待望?の直書き型「ToDoカレンダ」テンプレートを公開 ★★

★★ 祝日カレンダー付の新型「ToDoカレンダ」を追加 ★★

祝日カレンダーを盛り込んだ別途ロジックの新型 ToDoカレンダ(直書式、祝日付き) を追加公開します。

法定祝日カレンダーの生成・組込み、ユーザ書込みレコードの追加・削除・編集などほぼ全ての処理管理を、
バックヤードのブラインド自動処理で行うようにしましたので、使い勝手がかなり向上しています。

●テンプレート「ToDoカレンダ(直書式、祝日付き).fmp12」→ https://yahoo.jp/box/mZitIB

オフライン

#16 2018-06-19 10:22:52

Taichi
メンバー

Re: ★★ 待望?の直書き型「ToDoカレンダ」テンプレートを公開 ★★

Hiro様

データ配布ありがとうございます。
参考にさせていただきます!

オフライン

#17 2018-06-20 22:07:25

Hiro
メンバー

Re: ★★ 待望?の直書き型「ToDoカレンダ」テンプレートを公開 ★★

★★ 年間「祝日カレンダー」作成 カスタム関数を追加 ★★

「カレンダー組み込み」目的 に特化・最適化させたカスタム関数 (getHoliday) を公開します。
与えられた1日付ごとに一々個別精査する 他者2件と違い、年から年間「祝日カレンダー」(ハッシュ)を一挙に作成します。

(2018年度の出力結果例)
+++++++++++++++++
2018/01/01:元旦
2018/01/08:成人の日
2018/02/11:建国記念の日
2018/02/12:建国記念の日の振替休日
2018/03/21:春分の日
2018/04/29:昭和の日
2018/04/30:昭和の日の振替休日
2018/05/03:憲法記念日
2018/05/04:みどりの日
2018/05/05:こどもの日
2018/07/16:海の日
2018/08/11:山の日
2018/09/17:敬老の日
2018/09/23:秋分の日
2018/09/24:秋分の日の振替休日
2018/10/08:体育の日
2018/11/03:文化の日
2018/11/23:勤労感謝の日
2018/12/23:天皇誕生日
2018/12/24:天皇誕生日の振替休日
+++++++++++++++++++++


※この最適化関数を使ったアップデート版テンプレートをアップしましたので、旧版と差し替えてください。

●アップデート版テンプレート「ToDoカレンダ(直書式、祝日付き).fmp12」→ https://yahoo.jp/box/mZitIB

   
   

【 getHoliday(<<年>>) カスタム関数 】
/*=======================================================
++++++++++++++++++++++++++++++
  カスタム関数 getHoliday (<<年>>)
++++++++++++++++++++++++++++++ 
指定された年度の年間祝日の一覧リストを返します。
(日付 +< : >セパレータ + 祝日名 のハッシュ形式のリスト)
(※2018年6月20日現在)
CopyRight©2018,  by Hiro
<https://fm-aid.com/bbs2/profile.php?section=essentials&id=3> 
=======================================================*/

Let ( [  // === Let start ===

//+++++++++++++++++++++++++
// 「$year 年度」<<年>>パラメータ引数 を定義
//+++++++++++++++++++++++++
$year = <<年>> ;

// 「$getFurikae 振替休日」サブ関数を定義
// 日付:振替休日名 のハッシュ形式
// Evaluate($getFurikae) で実行
//+++++++++++++++++++++++++
// 2005.05.20 の法改正で
// 「国民の祝日」が日曜日に当たるときは、
// その日後においてその日に最も近い「国民の祝日」でない日を休日とする、と
// 振替休日の定義が変更になっている。			
// 5月3日、5月4日が日曜日の場合は5月6日は振替休日
// 振り替え休日(1973(昭和48)年4月12日施行)
// 祝日が日曜日の時は、翌月曜日が振替休日とする。
$getFurikae =
"Case(
 $theDate>=Date(1;1;2007) and 
  DayOfWeek ($theDate)=1 and
   ($theDate=Date(5;3;$year) or $theDate=Date(5;4;$year))
 ; Date(5;6;$year) & \":\" & $hName & \"の振替休日\"
; 
 $theDate>=Date(4;12;1973) and 
  DayOfWeek($theDate)=1
 ; Date(Month($theDate); Day($theDate+1); $year) & \":\" & $hName & \"の振替休日\"
)";

// 「#getHoliday 祝日及び振替休日」サブ関数を定義
// 日付:祝日名 のハッシュ配列形式のリスト
// Evaluate(#getHoliday) で実行
// +++++++++++++++++++++++++
#getHoliday =
"List($theDate &\":\"& $hName; Evaluate($getFurikae))" ;

// 「#shunbun 春分」変数を定義
// +++++++++++++++++++++++++
#shunbun =
Case(
 $year<=1899 and $year>=1851;
  Date(3;Int(19.8277+.242194*($year-1980)-Int(($year-1983)/4));$year);
 $year<=1979;
  Date(3;Int(20.8357+.242194*($year-1980)-Int(($year-1983)/4));$year);
 $year<=2099;
  Date(3;Int(20.8431+.242194*($year-1980)-Int(($year-1980)/4));$year);
 $year<=2150;
  Date(3;Int(21.851+.242194*($year-1980)-Int(($year-1980)/4));$year)
);

// 「#shuubun 秋分」変数を定義
// +++++++++++++++++++++++++
#shuubun =
Case(
 $year<=1899 and $year>=1851;
  Date(9;Int(22.2588+.242194*($year-1980)-Int(($year-1983)/4));$year);
 $year<=1979;
  Date(9;Int(23.2588+.242194*($year-1980)-Int(($year-1983)/4));$year);
 $year<=2099;
  Date(9;Int(23.2488+.242194*($year-1980)-Int(($year-1980)/4));$year);
 $year<=2150;
  Date(9;Int(24.2488+.242194*($year-1980)-Int(($year-1980)/4));$year)
);

// +++++++++++++++++++++++++
// === Holiday List start  ===
// +++++++++++++++++++++++++
#holidayList = 

// 祝日の算出範囲の定義
// +++++++++++++++++++++++++
// === <適用範囲> ===
// 国民の祝日に関する法律(祝日法)の施行された1948(昭和23)年7月20日以降
// (振替休日は1973(昭和48)年4月12日制定・施行)
// 春分・秋分の簡易計算の出来る範囲(1851〜2150)
// 春分・秋分の日の計算は「新こよみの便利帳 」(恒星社厚生閣刊) による
// 祝日としての春分・秋分の日は閣議で決定され前年の2月の官報に公示される。
Case (
 $year>=1948 and $year<=2150 ; 

// === List() start
// +++++++++++++++++++++++++
List(   

// ● 元旦
// 元旦(1月1日)1948.07.20制定
Case($year>=1949;
 Let([
  $theDate=Date(1;1;$year);
  $hName="元旦"
 ];
  Evaluate(#getHoliday)
 )
) ;

// ● 成人の日
// 成人の日(1月15日)1948.07.20制定
// 成人の日(1月第2月曜)1998.10.21制定 2000.01.01施行
Case(
$year>=2000;
 Let([
  $theDate=Date(1;15 - DayOfWeek(Date(1;6;$year));$year);
  $hName="成人の日"
 ];
  Evaluate(#getHoliday)
 )
;
$year>=1949;
 Let([
  $theDate=Date(1;15;$year);
  $hName="成人の日"
 ];
  Evaluate(#getHoliday)
 )
) ;

// ● 建国記念の日
// 建国記念の日(2月11日)1966.6.25制定
Case($year>=1967;
 Let([
  $theDate=Date(2;11;$year);
  $hName="建国記念の日"
 ];
  Evaluate(#getHoliday)
 )
) ;

// ● 春分の日
// 春分の日(春分日)1948.07.20制定
Case($year>=1967;
 Let([
  $theDate=#shunbun;
  $hName="春分の日"
 ];
  Evaluate(#getHoliday)
 )
) ;

// ● 天皇誕生日
// 天皇誕生日(4月29日)1948.07.20制定
Case($year>=1949 and $year<=1988;
 Let([
  $theDate=Date(4;29;$year);
  $hName="天皇誕生日"
 ];
  Evaluate(#getHoliday)
 )
) ;

// ● みどりの日
// みどりの日(4月29日)1989.02.17制定
Case($year>=1989 and $year<=2006;
 Let([
  $theDate=Date(4;29;$year);
  $hName="みどりの日"
 ];
  Evaluate(#getHoliday)
 )
) ;

// ● 昭和の日
// 昭和の日(4月29日)2005.05.20制定 2007.01.01施行
Case($year>=2007;
 Let([
  $theDate=Date(4;29;$year);
  $hName="昭和の日"
 ];
  Evaluate(#getHoliday)
 )
) ;

// ● 即位礼正殿の儀(仮称)
// 2019年以降の5月1日は即位礼正殿の儀を祝して定例化、2019年以降の呼称は未定
Case($year>=2019;
 Let([
  $theDate=Date(5;1;$year);
  $hName="即位礼正殿の儀(仮称)"
 ];
  Evaluate(#getHoliday)
 )
) ;

// ● 憲法記念日
// 憲法記念日(5月3日)1948.07.20制定
Case($year>=1949;
 Let([
  $theDate=Date(5;3;$year);
  $hName="憲法記念日"
 ];
  Evaluate(#getHoliday)
 )
) ;

// ● 国民の休日
// 国民の休日 1985.12.27制定
// 国民の祝日に関する法律 第3条3項(1985.12.27施行)
// その前日及び翌日が「国民の祝日」である日は、休日とする。
// (日曜日にあたる日及び前項に規定する休日にあたる日を除く。)
// 「国民の休日」は通称名
// ※振り替え休日が優先されるので国民の休日が月曜日になることはない。
Case($year>=1986 and $year<=2006 and DayOfWeek(Date(5;4;$year))>=3;
 Let([
  $theDate=Date(5;4;$year);
  $hName="国民の休日"
 ];
  Evaluate(#getHoliday)
 )
) ;

// ● みどりの日
// みどりの日(5月4日)2005.05.20制定 2007.01.01施行
Case($year>=2007;
 Let([
  $theDate=Date(5;4;$year);
  $hName="みどりの日"
 ];
  Evaluate(#getHoliday)
 )
) ;

// ● こどもの日
// こどもの日(5月5日)1948.07.20制定
Case($year>=1949;
 Let([
  $theDate=Date(5;5;$year);
  $hName="こどもの日"
 ];
  Evaluate(#getHoliday)
 )
) ;

// ● 海の日
// 海の日(7月20日)1995.03.08制定 1996.01.01施行
// 海の日(7月第3月曜日)2001.06.22制定 2003.01.01施行
Case(
$year>=2003;
 Let([
  $theDate=Date(7;22 - DayOfWeek(Date(7;6;$year));$year);
  $hName="海の日"
 ];
  Evaluate(#getHoliday)
 )
;
$year>=1996;
 Let([
  $theDate=Date(7;20;$year);
  $hName="海の日"
 ];
  Evaluate(#getHoliday)
 )
) ;

// ● スポーツの日(旧名:体育の日)
// 体育の日(10月10日)1966.06.25制定
// ※Tokyoオリンピックの2020年は、7月24日へ日付変更
// 2020年以降 体育の日は、スポーツの日 に改名
Case($year=2020;
 Let([
  $theDate=Date(7;24;$year);
  $hName="スポーツの日"
 ];
  Evaluate(#getHoliday)
 )
) ;

// ● 山の日
// 山の日(8月11日)2014.05.23制定
Case($year>=2016;
 Let([
  $theDate=Date(8;11;$year);
  $hName="山の日"
 ];
  Evaluate(#getHoliday)
 )
) ;

// ● 敬老の日
// 敬老の日(9月15日)1966.06.25制定
// 敬老の日(9月第3月曜日)2001.06.22制定 2003.01.01施行
Case(
$year>=2003;
 Let([
  $theDate=Date(9;22 - DayOfWeek(Date(9;6;$year));$year);
  $hName="敬老の日"
 ];
  Evaluate(#getHoliday)
 )
;
$year>=1966;
 Let([
  $theDate=Date(9;15;$year);
  $hName="敬老の日"
 ];
  Evaluate(#getHoliday)
 )
) ;

// ● 国民の休日
// 敬老の日が第3月曜日に改正されたことにより派生
// 秋分の日が水曜日になる年
// 2009,2015,2026,2032,2037,2043,2049,2054,2060,2071,2077,
// 2088,2094,2099,2105,2111,2116,2122,2133,2139,2150...
Case(
$year>=2003 and #shuubun-2=Date(9;22-DayOfWeek(Date(9;6;$year));$year);
 Let([
  $theDate=#shuubun -1;
  $hName="国民の休日"
 ];
  Evaluate(#getHoliday)
 )
) ;

// ● 秋分の日
// 秋分の日(秋分日)1948.07.20制定
Let([
 $theDate=#shuubun;
 $hName="秋分の日"
];
 Evaluate(#getHoliday)
) ;

// ● 体育の日
// 体育の日(10月10日)1966.06.25制定
// 体育の日(10月第2月曜日)1998.10.21制定 2000.01.01施行
// Tokyoオリンピックの2020年以降は、スポーツの日 に変更され廃止
Case(
$year>=2000 and $year<2020 ;
 Let([
  $theDate=Date(10;15 - DayOfWeek(Date(10;6;$year));$year);
  $hName="体育の日"
 ];
  Evaluate(#getHoliday)
 )
;
$year>=1966 and $year<2000;
 Let([
  $theDate=Date(10;10;$year);
 $hName="体育の日"
 ];
  Evaluate(#getHoliday)
 )
) ;

// ● スポーツの日(旧名:体育の日)
// 体育の日(10月10日)1966.06.25制定
// 体育の日(10月第2月曜日)1998.10.21制定 2000.01.01施行
// ※Tokyoオリンピックの2020年は、7月24日へ日付変更
// 2020年以降 体育の日は、スポーツの日 に改名
Case(
$year=2020; ""    // 7月の位置へ移動してある。
;
$year>=2020 ;
 Let([
  $theDate=Date(10;15 - DayOfWeek(Date(10;6;$year));$year);
  $hName="スポーツの日"
 ];
  Evaluate(#getHoliday)
 )
) ;

// ● 文化の日
// 文化の日(11月3日)1948.07.20制定
Case($year>=1948;
 Let([
  $theDate=Date(11;3;$year);
  $hName="文化の日"
 ];
  Evaluate(#getHoliday)
 )
) ;

// ● 勤労感謝の日
// 勤労感謝の日(11月23日)1948.07.20制定
Case($year>=1948;
 Let([
  $theDate=Date(11;23;$year);
  $hName="勤労感謝の日"
 ];
  Evaluate(#getHoliday)
 )
) ;

// ● 天皇誕生日
// 天皇誕生日(12月23日)1989.02.17制定
// 2019年以降は天皇譲位に伴い廃止
Case($year>=1989 and $year<2019;
 Let([
  $theDate=Date(12;23;$year);
  $hName="天皇誕生日"
 ];
  Evaluate(#getHoliday)
 )
) ;

// ● 皇太子明仁親王の結婚の儀
// 皇太子明仁親王の結婚の儀(昭和34年4月10日)
Case($year=1959;
 Let([
  $theDate=Date(4;10;$year);
  $hName="皇太子明仁親王の結婚の儀"
 ];
  Evaluate(#getHoliday)
 )
) ;

// ● 昭和天皇の大喪の礼
// 昭和天皇の大喪の礼(平成元年2月24日)
Case($year=1989;
 Let([
  $theDate=Date(2;24;$year);
  $hName="昭和天皇の大喪の礼"
 ];
  Evaluate(#getHoliday)
 )
) ;

// ● 即位礼正殿の儀
// 即位礼正殿の儀(平成2年11月12日)
Case($year=1990;
 Let([
  $theDate=Date(11;12;$year);
  $hName="即位礼正殿の儀"
 ];
  Evaluate(#getHoliday)
 )
) ;

// ● 皇太子徳仁親王の結婚の儀
// 皇太子徳仁親王の結婚の儀(平成5年6月9日)
Case($year=1993;
 Let([
  $theDate=Date(6;9;$year);
  $hName="天皇誕生日"
 ];
  Evaluate(#getHoliday)
 )
) 

)   // === List() end ===

)    // === Holiday List end ===

] ;  // === Let end ===

 #holidayList      // 最終結果リスト
) 

/*=======================================================
CopyRight©2018 by Hiro
<https://fm-aid.com/bbs2/profile.php?section=essentials&id=3> 
=======================================================*/

【修正履歴】
・ 2018/6/21   13:40
Shinさんの「体育の日」の呼称変更のご指摘を請け、2020年以降を「スポーツの日」へ変更しました。

【追記】
上記 getHoliday関数 の内容コピーは以下からダウンロードもできます。
●テキストファイル「getHoliday カスタム関数.txt」 → https://yahoo.jp/box/bSRLYu
(※ファイルの文字コードは unicode です。式記述にユニコードの演算記号文字が含まれるため)

編集者 Hiro (2018-06-23 15:25:33)

オフライン

#18 2018-06-21 09:41:20

Shin
メンバー

Re: ★★ 待望?の直書き型「ToDoカレンダ」テンプレートを公開 ★★

2020年以降は、体育の日 ではなく、スポーツの日 に変わりますよ。

オフライン

#19 2018-06-21 14:48:31

Hiro
メンバー

Re: ★★ 待望?の直書き型「ToDoカレンダ」テンプレートを公開 ★★

【 #17 関数の修正履歴 】
・ 2018/6/21  13:40   :  #17関数の式内容を修正しました。
>#18 Shinさんの「体育の日」の呼称変更のご指摘を請け、
      2020年以降を「スポーツの日」へ変更しました。

オフライン

#20 昨日 20:46:24

Taichi
メンバー

Re: ★★ 待望?の直書き型「ToDoカレンダ」テンプレートを公開 ★★

Hiro様

Todoカレンダー活用させていただいております。

既存のシステムに組み込ませていただこうかと思っているのですが、
うまくいかない点があるので質問です。

入力したい日付に文字を入力するのですが、うまく表示されません。
日記一覧には入力された日付と値は記録されているのですが、
カレンダーの日記配列上に表示されません。

Hiro様のスクリプトをスクリプトデバッカで流れを見ていると
「ウインドウ内容の再表示」で入力した文字が表示されているのですが、
私のカスタムappに移植したものだとウインドウ内容の再表示では
日記配列に表示されませんでした。

もし要因などご存知でしたら、教えて頂けると幸いです。
よろしくお願いいたします。

オフライン

#21 昨日 22:06:55

Hiro
メンバー

Re: ★★ 待望?の直書き型「ToDoカレンダ」テンプレートを公開 ★★

ココはテンプレートの一般公開の場として設けたものです。
関連でも、私的な問題については、別途私的に新トピックを立ててくださいネ。

さてご質問に付いてですが、圧倒的に説明が不足です。
2つ公開したテンプレートの一体どちら?とか!
文書説明だけでは難しいようなら、問題ファイルをアップするとか!
ところで、「日記配列[42]」Lookup計算フィールドは計算結果→非保存の設定になっていますか?

オフライン

クィック投稿

メッセージを書いて送信してください。
登録の確認

実在の人物による登録であることを確認します。

Board footer