日付を/で区切るには?

解決


村長  2004-10-05 02:18:24  No: 116749

テキストボックスに日付を入力するとき
20041004と入力しても04/10/04と入力しても
2004/10/04と入力しても
2004/10/04となるようにするには
どうしたらよいでしょうか?


フォレスト  2004-10-05 02:29:46  No: 116750

04/10/4とか
04/9/10とか
1桁の場合ゼロが入らないケースもあります?


ABC  2004-10-05 02:38:07  No: 116751

考えられるケースに場合わけして
それぞれのケースに対して適切な
処理を行えばいいでしょう。

入力インターフェースにTextBoxでなく
Masked Edit Controlを使えば
もう少し楽になるかもしれません。


村長  2004-10-05 02:53:05  No: 116752

すばやいレスありがとうございます。

>>フォレストさん
1桁の場合ゼロが入らないケースもあります!

>>ABCさん
Masked Edit Controlとはなんでしょうか?
勉強不足でごめんなさい。


魔界の仮面弁士  2004-10-05 03:12:49  No: 116753

> 1桁の場合ゼロが入らないケースもあります!
その場合、「2004123」というデータは、
「2004/1/23」と「2004/12/3」の2通りの解釈が可能ですが、
そのようなケースは、どうされるのでしょうか?


村長  2004-10-05 03:19:17  No: 116754

説明不足でした

入力を確定しフォーカスが外れた時に
yyyy/mm/dd
になるようにしたいのです。
入力時はスラッシュが無い場合は8桁入力にしたいです。


フォレスト  2004-10-05 03:34:08  No: 116755

>入力時はスラッシュが無い場合は8桁入力にしたいです。
「したいです」というのは?
8桁ではなかった場合、msgboxなどを出して再入力を求めるということですか?
それとも自動でゼロをつけて8桁にすると言うことでしょうか?

もし後者なら、先ほどの「2004123」の場合、
「20040123」、「20041203」、「20041230」、「20041023」
と、日付が大幅に変わります。
どこにゼロがつくか、その辺の仕様はどうなっているのでしょうか?


村長  2004-10-05 03:42:04  No: 116756

仕様はこのようになっています。

西暦入力「YYYY/MM/DD」、「YYYYMMDD」、
「YY/MM/DD」、「YYMMDD」のいずれかとする。
「YYYYMMDD」、「YY/MM/DD」、「YYMMDD」による入力は、入力後に「YYYY/MM/DD」に
編集を行う。西暦年2桁入力の場合は、2000年代に編集する。
1900年代を入力する場合は、「YYYY」4桁で入力する。
日付として不正な値を入力した場合は、エラーとする。


nanashi  2004-10-05 03:53:00  No: 116757

そこまで仕様が決まってるならその通りに処理するだけでは?


Dental  2004-10-05 04:54:48  No: 116758

先の例をもう一度。

> 1桁の場合ゼロが入らないケースもあります!
つまり、月または日の場合、「先頭の0を省略しても良い」のですよね?

という事は、
 2004年1月23日 → 20040123 → 2004123
 2004年12月3日 → 20041203 → 2004123
のように、同じパターンでの入力がありえるという事ですよね?

ならば「2004123」という入力は、
 (1) 「2004/01/23」と変換
 (2) 「2004/12/03」と変換
 (3) "日付として不正な値"とみなす(不正というか、曖昧というか)
 (4) その他
のうち、どのパターンに該当するのですか?


村長  2004-10-05 05:43:53  No: 116759

Dentalさん

この場合は(3)になります。

月または日で、「先頭の0を省略しても良い」のは
スラッシュが入っている場合のみです。
本当に説明が足りなくてごめんなさい。


ABC  2004-10-05 06:45:56  No: 116760

大体場合わけが分かったところで
どの処理が分からないでしょうか?
質問を絞り込みましょう。


村長  2004-10-05 18:29:26  No: 116761

みなさんありがとうございました。

場合わけをして解決しました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加