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

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

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

■10831 / inTopicNo.1)  曜日から日付を求めたい
  
□投稿者/ Vision Maker -(2018/01/14(Sun) 23:26:30)
    桐10s Win10です。

    毎週ごとに目標と簡単な計画を立てたいと思っています。
    例えば、来週の日曜日の日付がわかれば、日付加算を使用して
    月曜から土曜までの日付が作成できます。
    サンプルでは、局所変数に&日曜年月日として手入力で2018年01月21日を入れています。
    これを自動で作成したいのです。
    例えば、2018/1/14〜20までの間は2018/01/21
    、2018/1/21〜27までの間は2018/01/28

    よろしくお願いします。


1515939990.zip
/7KB
引用返信 [メール受信/OFF] 削除キー/
■10834 / inTopicNo.2)  Re[1]: 曜日から日付を求めたい
□投稿者/ ONnoji -(2018/01/15(Mon) 12:23:21)
    2018/01/15(Mon) 18:32:25 編集(投稿者)
    2018/01/15(Mon) 12:25:54 編集(投稿者)
    2018/01/15(Mon) 12:24:38 編集(投稿者)

    > 2018/1/14〜20までの間は2018/01/21
    > 2018/1/21〜27までの間は2018/01/28

    任意の日付から関数で曜日を求めて、求めた曜日に応じて以下の値を加算すれば良いのではないでしょうか?

    日 +7
    月 +6
    火 +5
    水 +4
    木 +3
    金 +2
    土 +1

    <追伸>

    老婆心ながら…

    サンプルを拝見しましたが、

    1レコードに月曜〜日曜の各項目を用意するのは、表示するのには都合良いでしょうけれど、

    検索や絞り込みをする場合には都合悪いことが多いだろうと思いますよ。


引用返信 [メール受信/OFF] 削除キー/
■10837 / inTopicNo.3)  Re[2]: 曜日から日付を求めたい
□投稿者/ Vision Maker -(2018/01/15(Mon) 20:14:49)
    2018/01/19(Fri) 07:15:09 編集(投稿者)
    2018/01/15(Mon) 20:20:29 編集(投稿者)

    ONnojiさん

    こんにちは。

    回答ありがとうございます。

    > 任意の日付から関数で曜日を求めて、求めた曜日に応じて以下の値を加算すれば良いのではないでしょうか?
    >
    > 日 +7
    > 月 +6
    > 火 +5
    > 水 +4
    > 木 +3
    > 金 +2
    > 土 +1
    >

    教えていただいた方法で解決できました。

    修正したものをサンプルであげております。

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

    追伸の部分については、今後の研究課題としたいと思います。

    ※H30/01/19
    あれ? 日付が違う・・・かっこが多い

    サンプルが間違っていましたので直しました。

    × ケース(#曜日( #日時値))="月")
    〇 ケース(#曜日( #日時値)="月")


解決済み!

1516310644.zip
/15KB
引用返信 [メール受信/OFF] 削除キー/
■10838 / inTopicNo.4)  Re[3]: 曜日から日付を求めたい
□投稿者/ ONnoji -(2018/01/15(Mon) 21:11:55)
    2018/01/16(Tue) 09:37:28 編集(投稿者)
    2018/01/15(Mon) 22:27:31 編集(投稿者)
    2018/01/15(Mon) 21:28:41 編集(投稿者)
    2018/01/15(Mon) 21:27:00 編集(投稿者)
    2018/01/15(Mon) 21:23:59 編集(投稿者)
    2018/01/15(Mon) 21:23:18 編集(投稿者)
    2018/01/15(Mon) 21:12:57 編集(投稿者)

    No10837に返信(Vision Makerさんの記事)
    > 修正したものをサンプルであげております。

    > 名札 メイン
    >  変数宣言 局所 文字列{&日曜年月日}
    > *
    >
    > 手続き定義開始 cmd日曜年月日Click()
    >  ケース開始
    >   ケース(#曜日( #日時値 )="月")
    >    &日曜年月日  = #日数加算(&年月日,6)
    >   ケース(#曜日( #日時値 )="火")
    >    &日曜年月日  = #日数加算(&年月日,5)
    >   ケース(#曜日( #日時値 )="水")
    >    &日曜年月日  = #日数加算(&年月日,4)
    >   ケース(#曜日( #日時値 )="木")
    >    &日曜年月日  = #日数加算(&年月日,3)
    >   ケース(#曜日( #日時値 )="金")
    >    &日曜年月日  = #日数加算(&年月日,2)
    >   ケース(#曜日( #日時値 )="土")
    >    &日曜年月日  = #日数加算(&年月日,1)
    >   ケース(#曜日( #日時値 )="日")
    >    &日曜年月日  = #日数加算(&年月日,7)
    >  ケース終了
    >  メソッド呼び出し @フォーム.再描画()
    > 手続き定義終了

    プロシージャ:cmd日曜年月日Click( )のロジックは、その通りで間違えないですが、似たような記述の繰り返しがミスを誘発しかねません。

    このような単調なコピペの繰り返しは、うっかりミスを起こすことがよくあります。

    もしも、私だったら、次のように書きますよ。



    手続き定義開始 cmd日曜年月日Click( )
     変数宣言 自動,文字列{ &icon, &title = "cmd日曜年月日Click( )", &msg }

     変数宣言 自動,文字列{ &dayOfWeek }
     変数宣言 自動,文字列{ &dayOfWeekList = "月,火,水,木,金,土,日" }/* 半角コンマで区切ったリスト */
     変数宣言 自動,文字列{ &stringList  = "6,5,4,3,2,1,7" }/* 半角コンマで区切ったリスト */
     変数宣言 自動,文字列{ &string }
     変数宣言 自動,整数 { &at }
     変数宣言 自動,整数 { &addNum }

     &dayOfWeek = #曜日( #日時値 )
     &at    = #対応番号( &dayOfWeekList, &dayOfWeek )
     &string  = #対応文字列( &stringList, &at )
     &addNum  = #num( &string )

     &日曜年月日 = #日数加算( &年月日, &addNum )

     メソッド呼び出し @フォーム.再描画()

    手続き定義終了


引用返信 [メール受信/OFF] 削除キー/
■10839 / inTopicNo.5)  Re[4]: 曜日から日付を求めたい
□投稿者/ Vision Maker -(2018/01/16(Tue) 00:00:12)
    ONnojiさん

    高等テクニックを教えていただいてありがとうございます。

    理解するのに数日はかかりそうです。
引用返信 [メール受信/OFF] 削除キー/
■10841 / inTopicNo.6)  Re[5]: 曜日から日付を求めたい
□投稿者/ ONnoji -(2018/01/16(Tue) 09:42:40)
    2018/01/16(Tue) 15:04:53 編集(投稿者)
    2018/01/16(Tue) 11:17:51 編集(投稿者)
    2018/01/16(Tue) 11:05:00 編集(投稿者)

    > 高等テクニックを教えていただいてありがとうございます。
    >
    > 理解するのに数日はかかりそうです。

    テクニックですが、高等ではありません。

    コピペを繰り返して編集よりも安全ですし、値の記入間違いも見ただけでチェックできます。

    なお、変数宣言 自動,整数 { &at }

    が抜けていましたので補いました。


    手続き定義開始 cmd日曜年月日Click( )
     変数宣言 自動,文字列{ &icon, &title = "cmd日曜年月日Click( )", &msg }

     変数宣言 自動,文字列{ &dayOfWeek }
     変数宣言 自動,文字列{ &dayOfWeekList = "月,火,水,木,金,土,日" }/* 半角コンマで区切ったリスト */
     変数宣言 自動,文字列{ &stringList  = "6,5,4,3,2,1,7" }/* 半角コンマで区切ったリスト */
     変数宣言 自動,文字列{ &string }
     変数宣言 自動,整数 { &at }
     変数宣言 自動,整数 { &addNum }

     &dayOfWeek = #曜日( #日時値 )
     &at    = #対応番号( &dayOfWeekList, &dayOfWeek )
     &string  = #対応文字列( &stringList, &at )
     &addNum  = #num( &string )

     &日曜年月日 = #日数加算( &年月日, &addNum )

     メソッド呼び出し @フォーム.再描画()

    手続き定義終了


    <蛇足>

    つまり以下のようなことです。

    1. &dayOfWeek = #曜日( #日時値 )
    2. &at    = #対応番号( &dayOfWeekList, &dayOfWeek )
    3. &string  = #対応文字列( &stringList, &at )
    4. &addNum  = #num( &string )

     ↓

    1.#曜日( #日時値 ) の戻り値を &dayOfWeek に代入

    2.半角コンマで区切ったリスト:&dayOfWeekList で、&dayOfWeek が何番目か求めて、&at に代入

    3.半角コンマで区切ったリスト:&stringList の &at 番めの文字列を、&string に代入

    4.&string を数値に変換して、&addNum に代入


引用返信 [メール受信/OFF] 削除キー/
■10842 / inTopicNo.7)  Re[6]: 曜日から日付を求めたい
□投稿者/ Vision Maker -(2018/01/16(Tue) 19:33:38)
    解説ありがとうございます。
    #対応番号
    #対応文字列
    の使い方も覚えられて今後とても役にたちそうです。
引用返信 [メール受信/OFF] 削除キー/
■10843 / inTopicNo.8)  Re[7]: 曜日から日付を求めたい
□投稿者/ Vision Maker -(2018/01/18(Thu) 06:47:03)
    変数宣言 局所 文字列{&日曜年月日}

    変数宣言 局所,文字列{ &日曜年月日 }
    コンマ(,)が抜けていました。
    正しい記述をしないといけませんね。
引用返信 [メール受信/OFF] 削除キー/



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

このトピックに書きこむ

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

Mode/  Pass/

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

- Child Tree -
- Antispam Version -