日本語プログラミング言語なでしこの公式掲示板

なでしこ1 質問

トップ 新規 検索

2022-08-19 18:10:42

Re④:尋ねるで入力した和暦日付(文字列)による日数差計算

TKI さん

尋ねるでも問題はないのと、尋ねるで入力した値がわからないと回答がしにくいのは同意見として…

#-----------------------------------
ダイアログ初期値は「令和4年5月13日」
尋ねる
それと「令和4年8月24日」の日数差を表示 //→ 103
#-----------------------------------


あとはなでしこバージョンはどうでしょうか
なでしこの令和対応は1.575です

>2019/04/15 version 1.575
>- 『和暦変換』命令を新元号の『令和』に対応(914)

同僚にnakoファイルを渡してエラーがでているとか、過去バージョンで実行ファイルに変換したものだとか。
開発用の環境だけ最新版とかはありえるかも?


 うーん・・・?
「令和4年5月13日」と「令和3年8月24日」の日数差を表示。
 の結果は、-262ですよね・・・?

 こちらとしては、これが問題なく動くことを確認しています。(入力欄にはコメントの日付をコピペ)
#---------------------------
「令和4年5月13日」と「令和3年8月24日」の日数差を表示。 #-262

「日付1」と尋ねる。#令和4年5月13日
日付1はそれ。
「日付2」と尋ねる。#令和3年8月24日
日付2はそれ。
日付1と日付2の日数差を表示。 #-262

※なでしこバージョン:1.587
#---------------------------
 したがって、「取得した文字列がそのままでは日付型として利用できない」などということは無いハズです。
 それで、てっきり尋ねるで入力した入力値に問題があるものと思ったのですが。

早速ありがとうございます。

「令和4年5月13日」と「令和3年8月24日」の日数差を表示。
とすれば、きちんと103が表示されるのは当方においても確認しています。
やはり、問題は「尋ねる」という命令で、取得した文字列がそのままでは日付型として利用できないということでしょうが、勉強不足のためそれ以上のことはわかりません。もう少し、勉強してみます。
お世話をおかけしました。

 和暦日付というのは、どんなものが入力される前提でしょうか?
「令和4年8月19日」などは、普通に変換されるはずなのですが。

#-----------------------------------
今日と「{今年+1}/01/01」の日数差を表示。#元日まで何日か。
「令和4年8月19日」と「{今年+1}/01/01」の日数差を表示。
「令和4年8月19日」と「{今年+1}/01/01」の日数差を表示。//全角もだいじょぶ☆
#-----------------------------------

尋ねるを使って自由に入力できる形だと、打ち間違いがあって入力値が日付の形式に合致していなかったら、当然エラーになっちゃいます。
おかしな入力をしてしまった場合にいちいちエラーになって止まるのが不都合なら、日数差の計算をさせる前に入力値を調べて日付の形式に合致しなければ再入力を促すような作りにしなきゃいけません。
ユーザーは何入れてくるか分からんし、それで、ネットの日付入力欄なんかも、セレクトボックスで選択させる方式が多いですよね~。
なでしこには、カレンダーのGUIもあったはず~。

また、たとえば漢字の日付には対応していないので、もし対応させたければ変換する関数を作るなどしなきゃなりません。
打ち間違いなどではなく、この形式での和暦入力には対応させたいが、なでしこの日数差などの関数ではエラーになっちゃう~というコトであれば、変換についてまた知恵も出せるかと思います。

尋ねるで、入力した和暦日付(文字列)を変数(例えば起算日、終期)に入れて、日数差を計算してその結果を表示させたいのですが、「str型からdate型への変換はできない。」とのエラーが出ます。頻繁に使われるプログラムと思いますが、何か方法がございますか?ご教授ください。





(編集パスワード送信)

子記事

親記事 (No.1458)
返信した記事(元) (No.1462)

この内容(No.1463)に返信

この内容(No.1463)をダウンロード

この内容(No.1463)のテキスト表示





www.eznavi.net