過去の桐井戸端BBS (桐ver.9)
24669 文字列データで日時計算(一週間後を求める)をしたい こだま478号東京行き 2004/02/09-15:25
表の文字列データを日時計算させる方法を考えています。
例えば、「平成16年2月9日」を「160209」といった文字列データで表記しています。
このデータの1週間後を計算式で表示させたいのですが、どのようにすればよいのでしょうか?

ご教授の方、よろしくお願いします。(桐V9)
24680 Re:文字列データで日時計算をしたい 藤野 2004/02/09-23:35
記事番号24669へのコメント

こんばんは、

160209を160216と表示すると解釈してですが。

関数はあまり詳しくないのですが自分が今知っている関数を利用すると

少し式が長くなりますがこんなのではどうでしょうか

160209は項目 年月日 に文字列で指定されているとします
式が長いので改行していますが本当は全部一行で書いております。
 
途中 #日付を使うと簡単なのですがこの関数は20040216のようになりますので、
#元号年を使用してみました。
 加算日は7日としています。
   (加算日が6日の時は下記の7を6にしてみてください)
 尚ヘルプで時間や日の関数を見るといろいろ楽しめると思います


#文字列(#元号年(#日時値(#日数加算(("平成"+#部分列([年月日],1,2)+"/"+#部分列([年月日],3,2)+"/"+#部分列([年月日],5,2)),7))))+#部分列(#日付(#日数加算(("平成"+#部分列([年月日],1,2)+"/"+#部分列([年月日],3,2)+"/"+#部分列([年月日],5,2)),7),3),3,4)

私の解釈が違っていたら、すみません

どなたかもっと簡単な式をご存知のかたはよろしくおねがいします。

24682 Re:文字列データで日時計算をしたい 悲しげ 2004/02/10-01:02
記事番号24680へのコメント
う〜ん、私なら面倒なので即刻西暦で走ってしまいますが(印刷時だけ和暦変換とか)

#元号日付(#日数加算("平成"+#sstr([日付],1,2)+"/"+#sstr([日付],3,2)+"/"+#sstr([日付],5,2),7),3)

だと、少し短くできました。

24683 Re:文字列データで日時計算をしたい 悲しげ 2004/02/10-01:04
記事番号24682へのコメント
"平成"は"H"にできますね。

#元号日付(#日数加算("H"+#sstr([日付],1,2)+"/"+#sstr([日付],3,2)+"/"+#sstr([日付],5,2),7),3)

24690 Re:文字列データで日時計算をしたい こだま478号東京行き 2004/02/10-11:18
記事番号24683へのコメント
藤野さん、悲しげさん、ありがとうございました。
おかげでできるようになりました。
24691 コマンドボタンで日付を表示させたい こだま478号東京行き 2004/02/10-11:28
自分の投稿No.24669に続くのですが、コマンドボタンを押したら
今日の日付と1週間後の日付をテキストボックスに表示させたいと思っています。
あれこれ思ったものをやったのですが、エラーが出るなどで上手くいきません。

ご教授の方、よろしくお願いします。(桐V9)
24695 Re:コマンドボタンで日付を表示させたい 佐田 守弘 2004/02/10-12:17
記事番号24691へのコメント
こだま478号東京行きさん
>あれこれ思ったものをやったのですが、エラーが出るなどで上手くいきませ
>ん。
との事なので、ある程度は試されているのだと思います。
どの様にしたらどの様なエラーが出たのかをお知らせ下さい。


24696 Re:コマンドボタンで日付を表示させたい こだま478号東京行き 2004/02/10-13:13
記事番号24695へのコメント
佐田先生

エラーは以下のとおりです。
−−−−−−−−−−−−−−−−−−
KU1093:データの形式に誤りがあります。
−−−−−−−−−−−−−−−−−−
です。

コマンドボタンの機能名・機能パラメータが
1.行追加
2.置換_条件名  _[日付]=#元号日付(#年月日 , 3 )
3.置換_条件名  _[1週間後]=#元号日付(#日数加算("H"+#sstr([日付],1,2)+"/"+#sstr([日付],3,2)+"/"+#sstr([日付],5,2),7),3)
です。

2と3の機能名を「項目置換」に変えたときは、レコードの先端へ移ってしまいます。
24701 Re:コマンドボタンで日付を表示させたい 佐田 守弘 2004/02/10-14:11
記事番号24696へのコメント
こだま478号東京行きさん
置換コマンドは表全体に対して行うコマンドなので、このケースで使うと大変な事になるでしょう。
全データが同じ値で書き換えられてしまいます。
(多分、もう書き換えられてしまっている様な気がします。)

行訂正でその行だけの項目値を訂正するのが正解です。
とは言え、私はコマンドボタンの機能名で試した事がありません。

ここではイベントを使う方法で示します。多分その方が簡単でしょう。
イベントファイルの中に、例えば「日付設定」の様な一般手続きを作って下さい。
その中に、
行訂正 [日付]=#元号日付(#年月日 , 3
   ,[1週間後]=#元号日付(#日数加算("H"+#sstr([日付],1,2)>+"/"
    +#sstr([日付],3,2)+"/"+#sstr([日付],5,2),7),3)
を記入して下さい。
(上記の式は、書き込まれたものをそのままコピーしたものです)

そしてコマンドボタンには手続き実行の機能で、パラメータにこの手続き名を指定します。

佐田守弘(KS-00119)
24752 Re:コマンドボタンで日付を表示させたい こだま478号東京行き 2004/02/11-16:25
記事番号24701へのコメント
あれこれ悩んだ結果、上手くいくものが出来ました。
コマンドボタンの定義は以下の通りです。

機能名・機能パラメータ
項目置換 #未定義値変換( [1週間後] , #元号日付(#日数加算("H"+#sstr([日付],1,2)+"/"+#sstr([日付],3,2)+"/"+#sstr([日付],5,2),7),3) )

上記のもので1週間後の日付を出すことが出来ました。

>佐田先生
イベントを使ったものをせっかく教えていただいたのに、申し訳ありませんでした。m(_ _)m
今後実践してみようかと思います。

戻る