(現在 過去ログ92 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■13717 / inTopicNo.1)  第○○曜日の求め方
  
□投稿者/ いぶけん -(2023/03/30(Thu) 16:08:15)
    桐10sです。

    2023年3月の場合
     03/07が第一火曜日(#週の戻り値だと「2」)
     03/14が第二火曜日(#週の戻り値だと「3」)
    になり、「#週」は使えません。

    カレンダー.tblを作成中なのですが、
    2000年以降の成人の日の祝日定義の「第二月曜日」がうまくいかず躓いています。

    よろしくお願いします。


    また、データ添付したいのですが、
    生データで6304KB。ZIP圧縮しても1048KBと100KBを10倍以上超えて添付できません。
    かなり余計なものは削除したつもりなのですが、なにかいい方法あれば
    ご教授ください。

引用返信 [メール受信/OFF] 削除キー/
■13718 / inTopicNo.2)  Re[1]: 第○○曜日の求め方
□投稿者/ ONnoji -(2023/03/30(Thu) 17:37:29)
    2023/03/30(Thu) 18:01:01 編集(投稿者)

    No13717に返信(いぶけんさんの記事)
    > カレンダー.tblを作成中なのですが、
    > 2000年以降の成人の日の祝日定義の「第二月曜日」がうまくいかず躓いています。
    >
    > また、データ添付したいのですが、
    > 生データで6304KB。ZIP圧縮しても1048KBと100KBを10倍以上超えて添付できません。
    > かなり余計なものは削除したつもりなのですが、なにかいい方法あれば

    カレンダー.tbl なるものは、1年365行で作られる表のことでしょうか?

    それとも、日付ピッカー(ポップアップ・カレンダー)でしょうか??
    ※日付ピッカー(ポップアップ・カレンダー)は、カレンダーから日付を選択したりきるウィジェット。

    p.s.

    [敬老の日(9月の第3月曜日)]も[秋分の日(通例、9月22日から9月23日ごろ)]と重なる場合があるのでややこしいですよ。

引用返信 [メール受信/OFF] 削除キー/
■13719 / inTopicNo.3)  Re[2]: 第○○曜日の求め方
□投稿者/ いぶけん -(2023/03/30(Thu) 17:52:45)
    > カレンダー.tbl なるものは、1年365行で作られる表のことでしょうか?
    >
    > それとも、日付ピッカー(ポップアップ・カレンダー)でしょうか??
    > ※日付ピッカー(ポップアップ・カレンダー)は、カレンダーから日付を選択したりきるウィジェット。
    >

    1年365行(366行)で作られる表です。
    よろしくお願いします。


引用返信 [メール受信/OFF] 削除キー/
■13720 / inTopicNo.4)  Re[3]: 第○○曜日の求め方
□投稿者/ ONnoji -(2023/03/30(Thu) 18:30:09)
    2023/03/30(Thu) 19:26:07 編集(投稿者)

    > 1年365行(366行)で作られる表です。

    これってカレンダーという名前のスケジュール表なんですか???

    全日程を行(レコード)すると1年365行(366行)必要になりますよね。

    単に日付を表の文字列型/日付型 の項目へ代入するだけであれば、日付ピッカー(ポップアップ・カレンダー)をお勧めします。

    これはミニ・カレンダーのフォームを経由して、日付を表の文字列型/日付型 の項目へ代入するユーティリティです。

    拙作のミニ・カレンダーはNULLフォームです。つまり、表を利用していません。

    もしも、よろしければお試しください。

    拙作のミニ・カレンダーはフォームの[テキストボックス]の[入力支援ボタン]で利用出来ます。

    【多遊】さんのダウンロードコーナーの

    #205 INF_Framework 第3.3版 改訂版(MkII) サンプル集 for 桐10s / 桐sSL

     <サンプル集のファイル> INF_Framework_2022_Samples

      :
      :
     1st_Spec_Memo_WIDGET_電卓・カレンダ.txt … 仕様メモ
      :
      :
     INF_DatePicker.kex
     INF_DatePicker.wfx
      :
      :
     カレンダー入力.tbx
     カレンダー入力.wfx ← これを開くと実際に試せます
      :          ・・・・・・・・・・・・・
      :

    【入力支援ボタンの例】
     カレンダー入力.wfx
     オブジェクト名:txt文字列型入力支援ボタン

     プロパティ名    設定値
     オブジェクト名     txt文字列型入力支援ボタン
     入力支援ツールの種別 モーダルフォーム
     選択値リスト     &年月日, "INF_DatePicker.wfm"
     選択値の設定    選択値
     選択時置換     する

     WIDGET_DatePicker の解説|あこめの桐のプログラミング入門
     http://akome409102.html.xdomain.jp/Kiri/Widget33MkII_DatePicker.html

    p.s.

    カレンダーの国民の祝日(固定日/第?週?曜日)・春分・秋分・振替休日の判定は面倒ですよね。

    今後も法令によって変更が予想されます。

    なので、日付の入力はフォームの[テキストボックス]の[入力支援ボタン]でミニ・カレンダーを利用するのが便利ですよ。

    p.p.s.

    非常に分かり難いですが、INF_DatePicker.kex の該当部をご参考までに。

    手続き定義開始 prc祝日データの初期化( )
     変数宣言 自動,文字列{ &icon, &title = "prc祝日データの初期化( )", &msg }
     変数宣言 自動,整数 { &traceON = #対応番号( #uc2( #変数( "INFmTraceModuleNameList" ) ), "ALL" ) .or #対応番号( #uc2( #変数( "INFmTraceModuleNameList" ) ), "INF" ) .or #対応番号( #uc2( #変数( "INFmTraceModuleNameList" ) ), "HDL" ) }
     変数宣言 自動,文字列{ &traceMsg = #cond( #変数( "INFmTraceFormPathAdd" ), &INFmMyWfmPath ) + &INFmMyWfmName + " hdl=" + #last( " " + #str( &hwindow ), 2 ) + ">" + &title }
     ** &traceON = 0
     条件 ( &traceON ) トレース出力 &traceMsg + "を実行開始しました"

     * 月,日,回,曜日,祝日等名, 適用開始年,適用終了年
     &m祝日01月[1] = #trim( " 1, 1,,, 元日 ,1948," , 4 )
     &m祝日01月[2] = #trim( " 1,15,,, 成人の日 ,1948,1999", 4 )
     &m祝日01月[3] = #trim( " 1, 0, 2,月, 成人の日 ,2000," , 4 )
     &m祝日02月[1] = #trim( " 2,11,,, 建国記念の日,1967," , 4 )
     &m祝日02月[2] = #trim( " 2,23,,, 天皇誕生日 ,2020" , 4 ) /* 2019年、2月23日に期日変更される予定。ただし適用は2020年からで、2019年は日程上設定されない */
     &m祝日02月[3] = #trim( " 2,24,,, 大喪の礼 ,1989,1989", 4 ) /* 皇室慶弔行事 1989年(平成元年)2月24日 昭和天皇の大喪の礼 */
     &m祝日03月[1] = #trim( " 3, 0, 0,, 春分の日 ,1948," , 4 )
     &m祝日04月[1] = #trim( " 4,29,,, 天皇誕生日 ,1948,1988", 4 )
     &m祝日04月[2] = #trim( " 4,29,,, みどりの日 ,1989,2006", 4 )
     &m祝日04月[3] = #trim( " 4,29,,, 昭和の日 ,2007," , 4 )
     &m祝日04月[4] = #trim( " 4,10,,,  親王結婚の儀,1959,1959", 4 ) /* 皇室慶弔行事 1959年(昭和34年)4月10日 皇太子・明仁親王の結婚の儀 */
     &m祝日04月[5] = #trim( " 4,30,,,  国民の休日 ,2019,2019", 4 )
     &m祝日05月[1] = #trim( " 5, 3,,, 憲法記念日 ,1948," , 4 )
     &m祝日05月[2] = #trim( " 5, 4,,, 国民の休日 ,1988,2006", 4 ) /* 5月4日は1988年(昭和63年)〜 2006年(平成18年)の間は、一部(日曜日or月曜日)を除き「国民の休日」*/
     &m祝日05月[3] = #trim( " 5, 4,,, みどりの日 ,2007," , 4 )
     &m祝日05月[4] = #trim( " 5, 5,,, こどもの日 ,1948," , 4 )
     &m祝日05月[5] = #trim( " 5, 1,,, 天皇の即位 ,2019,2019", 4 ) /* 天皇の即位の日及び即位礼正殿の儀の行われる日を休日とする法律 */
     &m祝日05月[6] = #trim( " 5, 2,,, 国民の休日 ,2019,2019", 4 )
     &m祝日06月[1] = #trim( " 6, 9,,, 親王結婚の儀,1993,1993", 4 ) /* 皇室慶弔行事 1993年(平成5年)6月9日 皇太子・皇太子徳仁親王の結婚の儀 */

     ** 2020.04.01 要素数変更 &m祝日07月[5] → &m祝日07月[7] &m祝日08月[3] → &m祝日08月[4]
     &m祝日07月[1] = #trim( " 7,20,,, 海の日 ,1996,2002", 4 )
     &m祝日07月[2] = #trim( " 7, 0, 3,月, 海の日 ,2003,2019", 4 )
     &m祝日07月[3] = #trim( " 7,23,,, 海の日 ,2020,2020", 4 )
     &m祝日07月[4] = #trim( " 7,22,,, 海の日 ,2021,2021", 4 ) /* 2020.04.01 オリンピック延期追加 */
     **&m祝日07月[4] = #trim( " 7, 0, 3,月,海の日 ,2021," , 4 ) /* 2020.04.01 オリンピック延期 &m祝日07月[4] → &m祝日07月[7] */
     &m祝日07月[5] = #trim( " 7,24,,, スポーツの日,2020,2020", 4 )
     &m祝日07月[6] = #trim( " 7,23,,, スポーツの日,2021,2021", 4 ) /* 2020.04.01 オリンピック延期追加 */
     &m祝日07月[7] = #trim( " 7, 0, 3,月, 海の日 ,2022," , 4 ) /* 2020.04.01 オリンピック延期 &m祝日07月[4] → &m祝日07月[7] */

     &m祝日08月[1] = #trim( " 8,11,,, 山の日 ,2016,2019", 4 )
     &m祝日08月[2] = #trim( " 8,10,,, 山の日 ,2020,2020", 4 )
     **&m祝日08月[3] = #trim( " 8,11,,, 山の日 ,2021," , 4 )
     &m祝日08月[3] = #trim( " 8,11,,, 山の日 ,2022," , 4 ) /* 2020.04.01 オリンピック延期 &m祝日08月[3] → &m祝日08月[3] */
     &m祝日08月[4] = #trim( " 8, 8,,, 山の日 ,2021,2021", 4 ) /* 2020.04.01 オリンピック延期追加 */

     &m祝日09月[1] = #trim( " 9,15,,, 敬老の日 ,1966,2002", 4 )
     &m祝日09月[2] = #trim( " 9, 0, 3,月, 敬老の日 ,2003," , 4 )
     &m祝日09月[3] = #trim( " 9, 0, 0,, 秋分の日 ,1948," , 4 )
     &m祝日09月[4] = #trim( " 9, 0, 0,, 国民の休日 ,2009," , 4 ) /* 敬老の日 と 秋分の日 の間で、月曜日(振り替え休日)を除く 最初の適用は2009年(平成21年)9月22日 */
     &m祝日10月[1] = #trim( "10,10,,, 体育の日 ,1966,1999", 4 )
     &m祝日10月[2] = #trim( "10, 0, 2,月, 体育の日 ,2000,2019", 4 )

     **&m祝日10月[3] = #trim( "10, 0, 2,月,スポーツの日,2021," , 4 )
     &m祝日10月[3] = #trim( "10, 0, 2,月, スポーツの日,2022," , 4 ) /* 2020.04.01 オリンピック延期 &m祝日10月[3] → &m祝日10月[3] */

     &m祝日10月[4] = #trim( "10,22,,, 即位の礼正殿の儀,2019,2019", 4 ) /* 天皇の即位の日及び即位礼正殿の儀の行われる日を休日とする法律 */
     &m祝日11月[1] = #trim( "11, 3,,, 文化の日 ,1948," , 4 )
     &m祝日11月[2] = #trim( "11,12,,, 即位礼正殿の儀,1990,1990", 4 ) /* 皇室慶弔行事 1990年(平成2年)11月12日 即位の礼正殿の儀 */
     &m祝日11月[3] = #trim( "11,23,,, 勤労感謝の日,1948," , 4 )
     &m祝日12月[1] = #trim( "12,23,,, 天皇誕生日 ,1989,2018", 4 )
     ** " 0, 0,,, (振替休日) ,1973," , 4 ) 振り替え休日はパラメータを設定できないので処理は、prcPublicHolidayVisible で行う

     条件 ( &traceON ) トレース出力 &traceMsg + "を実行終了しました"
    手続き定義終了


    手続き定義開始 prc祝日リスト取得( 文字列 &dayString, 文字列 &variableName, 参照 文字列 &dayStringList, 参照 文字列 &publicHolidayList )
     繰り返し &i = 1, &loop, &step
      if ( &適用開始年 <= &year .and &適用終了年 >= &year )
       if ( &day )
        if ( &祝日名 = "国民の休日" )
         if ( &曜日 = "日" .or &曜日 = "月" )
         end
        end
       else
        if ( &序数 )
         繰り返し ( &month = #月( &yyyymmdd ) )
          if ( &dayOfWeekString = &曜日 )
          end
          if ( &dayOfWeekString = &曜日 .and &曜日cnt = &序数 )
           繰り返し中止
          end
         繰り返し終了
        end
        if ( &祝日名 = "春分の日" )
        end
        if ( &祝日名 = "秋分の日" )
        end
        if ( &祝日名 = "国民の休日" ) /* 敬老の日 と 秋分の日 の間で、月曜日(振り替え休日)を除く 最初の適用は2009年(平成21年)9月22日 */
         if ( &日数 = 2 )
          if ( &曜日 <> "月" )
          else
          end
         else
         end
        end
       end
       if ( &yyyymmdd <> #u )
       end
      else
      end
     繰り返し終了
    手続き定義終了


引用返信 [メール受信/OFF] 削除キー/
■13721 / inTopicNo.5)  Re[4]: 第○○曜日の求め方
□投稿者/ いぶけん -(2023/03/30(Thu) 19:49:30)
    ONnoji さん
    >振替休日の判定は面倒
    祝日の翌日が月曜日なら、"振替休日" と定義していたのですが、
    なんと2020年5月6日(水)が振替休日なんですね。
    調べてみたら、
    【「国民の祝日」が日曜日に当たるとき、その日の後の最も近い平日を休日とする】
    本当に面倒ですね。



    >[敬老の日(9月の第3月曜日)]も[秋分の日(通例、9月22日から9月23日ごろ)]と重なる場合があるのでややこしいですよ。

    気づきませんでしたが、確かにそうですね。


    追加の質問なのですが、
    Excelの日付は1900年1月1日からの経過日数(→1900/01/01が1になる?)であるシリアル値(整数値)で管理されています。
    土曜日のシリアル値を7で割ると、割り切れます。1900年3月1日以降の日付については「土曜日が7の倍数」であることが知られています。したがって、曜日を考えるときには土曜日を基準として考えます。

    ソース
    https://www.waenavi.com/entry/20191106/1573032872#13%E4%BD%95%E5%9B%9E%E7%9B%AE%E3%81%AE%E4%BD%95%E6%9B%9C%E6%97%A5%E3%81%8B


    #日数(d"1900-01-01",[年月日])
    #日数(d"1900-01-02",[年月日])
    でシリアル値が求められると思いやってみましたが、

    前者を7で割った余りは、土曜日で「5」
    前者を7で割った余りは、土曜日で「4」
    で割り切れません。
    #日数(d"1900-01-06",[年月日])にすると、土曜が7で割り切れるようになるのですが、
    これを応用するのはNGなのでしょうか?


    また、ご紹介頂いた、「INF_Framework_2022_Samples」
    自分にはかなり敷居が高そうですが、勉強してみます。


    ありがとうございました。

引用返信 [メール受信/OFF] 削除キー/
■13722 / inTopicNo.6)  Re[5]: 第○○曜日の求め方
□投稿者/ ONnoji -(2023/03/30(Thu) 20:25:07)
    2023/03/30(Thu) 20:50:25 編集(投稿者)

    > 追加の質問なのですが、
    > Excelの日付は1900年1月1日からの経過日数(→1900/01/01が1になる?)であるシリアル値(整数値)で管理されています。
    > 土曜日のシリアル値を7で割ると、割り切れます。1900年3月1日以降の日付については「土曜日が7の倍数」であることが知られています。
    > したがって、曜日を考えるときには土曜日を基準として考えます。
    >
    > ソース
    > https://www.waenavi.com/entry/20191106/1573032872#13%E4%BD%95%E5%9B%9E%E7%9B%AE%E3%81%AE%E4%BD%95%E6%9B%9C%E6%97%A5%E3%81%8B

    普段、私はまったく Excell 使いませんので、[追加の質問]は他の回答者の方へバトンタッチいたします。
                         ・・・・・・・・・・・・・・・・・・・・・・・・・・・

    > また、ご紹介頂いた、「INF_Framework_2022_Samples」
    > 自分にはかなり敷居が高そうですが、勉強してみます。

    ご自身がお使いになるフォームのテキストボックスの入力支援ボタンに設定するだけで使えますよ。

    拙作はフレームワークですので、内容を理解する必要はまったくありませんよ。

    単に開くだけで使えるフォームですよ。それがフレームワークというものですから。

引用返信 [メール受信/OFF] 削除キー/
■13723 / inTopicNo.7)  Re[6]: 第○○曜日の求め方
□投稿者/ ONnoji -(2023/03/30(Thu) 23:07:58)
    桐10sのサンプルの

    C:\Users\○○\desktop\桐10s サンプルデータ\フォーム・レポート

    フォルダの

    祝日.tbx

    入力支援ボタン.wfx

    カレンダー.wfx

    も参考になりますよ。

引用返信 [メール受信/OFF] 削除キー/
■13724 / inTopicNo.8)  Re[7]: 第○○曜日の求め方
□投稿者/ ONnoji -(2023/03/31(Fri) 10:07:37)
    2023/04/01(Sat) 16:24:30 編集(投稿者)
    2023/03/31(Fri) 10:15:45 編集(投稿者)

    > #日数(d"1900-01-06",[年月日])にすると、土曜が7で割り切れるようになるのですが、
    > これを応用するのはNGなのでしょうか?

    桐ではエクセルのような[通し番号日付(シリアル値)]は基本的に不要ですよ。

    p.s.

    ちなみに、エクセルで 4年と1日ずれることがあります。

    こちら
     ↓
    過去ログ82
    エクセルを開くと日付がずれます
    http://tayu.o0o0.jp/bbs/kiri/cbbs.cgi?mode=al2&namber=12220&no=0&KLOG=82

引用返信 [メール受信/OFF] 削除キー/
■13725 / inTopicNo.9)  Re[1]: 第○○曜日の求め方
□投稿者/ いぶけん -(2023/04/02(Sun) 06:02:26)
    ONnojiさん


    フレームワーク超便利ですね。
    ありがとうございました

解決済み!
引用返信 [メール受信/OFF] 削除キー/
■13726 / inTopicNo.10)  Re[2]: 第○○曜日の求め方
□投稿者/ いぶけん -(2023/04/02(Sun) 13:38:53)
    2023/04/02(Sun) 13:44:10 編集(投稿者)

    2020年の「山の日」は、8月11日ではなく、
    東京オリンピック閉会式予定日だった日の翌日の8月10日に変更

    2021年の「山の日」は、8月11日ではなく、
    東京オリンピック閉会式が行われる8月8日に変更


    イレギュラーなケースが多く、色々調べてみたら、内閣府のcsvテキストが
    あったので、それを読み込みました。

引用返信 [メール受信/OFF] 削除キー/
■13727 / inTopicNo.11)  Re[3]: 第○○曜日の求め方
□投稿者/ ONnoji -(2023/04/02(Sun) 14:09:14)
    2023/04/02(Sun) 15:27:01 編集(投稿者)

    > 2020年の「山の日」は、8月11日ではなく、
    > 東京オリンピック閉会式予定日だった日の翌日の8月10日に変更
    >
    > 2021年の「山の日」は、8月11日ではなく、
    > 東京オリンピック閉会式が行われる8月8日に変更

    国民の祝日に関する法律(施行1948年7月20日)は時々法令が改正されるので保守が面倒です。

    従って拙作に限らず、桐の「ミニ・カレンダー」フォームアプリでは、
    簡単に追加修正できるようにデータを用意してあるものですよ。

     ・拙作:INF_DatePicker.kex では、手続き名:prc祝日データの初期化( )

     ・桐のサンプル:カレンダー.wfx では、祝日.tbx

    なので、すべてを項目計算式で行おうとすると大変ですよ。

     過去ログ69
     桐を利用して予定表を作成するためには・・・
     □投稿者/ たゆー -(2017/06/05(Mon) 15:22:18)
     http://tayu.o0o0.jp/bbs/kiri/cbbs.cgi?mode=al2&namber=10510&no=0&KLOG=69

    p.s.

    拙作を試していただいてありがとうございます。

    ちなみに拙作のミニ・カレンダーのスピンボタンでは1945年(昭和20年)より前の年は移動できないようになっています。

    なお、年の範囲は1900〜2099年としてあります。


引用返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -