[前の記事]« ファイルリストを参照してファイルの存在を確認したい
[次の記事]Google検索ボックスについて »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「DATE,TIME…日付、時刻の取得/利用」索引へ
▲カテゴリー「SET, PATH, %環境変数%」索引へ

入力文字列が日付として妥当な値かどうかをチェックする方法

1411.
日付データのフォーマットチェックについてです。
2006年10月05日(木) 13時17分
NORIKO
いつもお世話になっております。
日付データのフォーマットチェックについて
教えて下さい。
●環境
  OS:Windows XP, Windows 2000

●質問
 変数YYYYとMMに入力された値が、日付として
 妥当な値か(全て数値で、年は1900~2100の間
 月は01~12)をチェックするよい方法がござい
 ましたら、アドバイス下さい。

 今は、
 まず全てが数値がどうかのチェックを行い、
 次に値のチェックをしています。
 例、
 REM 数値かのチェック
 if %YYYY:~0,1% LSS 0 GOTO :Error
 if %YYYY:~0,1% GTR 9 GOTO :Erro
             : 全ての文字をチェック
 REM 値のチェック
 if %YYYY% LSS 1900 GOTO :Error
  if %YYYY% GTR 2100 GOTO :Error

もしよい方法がございましたら、教えて下さい。
1415.
Re:日付データのフォーマットチェックについてです。
2006年10月05日(木) 20時16分
otn
> 変数YYYYとMMに入力された値が、日付として
> 妥当な値か(全て数値で、年は1900~2100の間
> 月は01~12)をチェックするよい方法がござい
> ましたら、アドバイス下さい。

数パターンしかテストしてませんが、4桁数字のチェックは、

set   "X=1%YYYY%"
set /a Y=10000+YYYY
if not %X%==%Y% gogo :Error

でおおむねいけそうに思います。特殊記号でだめなものはあるでしょうね。

1417.
Re:日付データのフォーマットチェックについてです。
2006年10月06日(金) 08時41分
じゃく
おはようございます。

数値のチェックの代案です。
(値のチェックは現状で良いと思います。)

REM 数値かのチェック
echo %YYYY%|findstr /R "^[12][019][0-9][0-9]$" >NUL
if %errorlevel% NEQ 0 goto :Error 

REM 値のチェック
if %YYYY% LSS 1900 GOTO :Error
if %YYYY% GTR 2100 GOTO :Error


1430.
Re:日付データのフォーマットチェックについてです。
2006年10月10日(火) 13時46分
NORIKO
otn さん、じゃくさん、ありがとうございます。
回答いただいた方法で効率よく(かつ確実に)
チェックできるようになりました。
とても助かりました。

※ 出張に出てしまい、報告が遅れ申し訳ございません。

ありがとうございました。
1434.
Re:日付データのフォーマットチェックについてです。
2006年10月10日(火) 16時42分
NORIKO
otnさんからいただいた回答で、
set   "X=1%YYYY%"
とある部分を
set   X=1%YYYY%
としても正常に動作するようです。
どのような理由で、ダブルクォートで囲むのでしょうか。
(もしかしたら、基本的な内容かも知れませんが疑問に
思ったため、確認させていただきました)

●以下のようにしても動作します。
 set    X=1%YYYY%
 set /a Y=10000+YYYY
 if not %X%==%Y% gogo :Error



1435.
Re:日付データのフォーマットチェックについてです。
2006年10月11日(水) 19時45分
otn
>どのような理由で、ダブルクォートで囲むのでしょうか。

変数 YYYY に、< | > & 等の文字が入っていてもエラーにならないようにするためです。
ただし、そのためには
> if not %X%==%Y% goto :Error
では駄目で、
if not "%X%"=="%Y%" goto :Error
のようにこちらも" "で囲む必要があり、片手落ちでした。
1441.
Re:日付データのフォーマットチェックについてです。
2006年10月12日(木) 14時45分
NORIKO
otnさん、回答ありがとうございます。
弊社環境でもテストして、otnさんの言っている意味
(< | > & 等の文字が入っていてもエラーにならない)
がよくわかりました。

とても参考になりました。
 


 

1411.日付データのフォーマットチェックについてです。 NORIKO 06/10/05(木) 13:17
1415.Re:日付データのフォーマットチェックについてです。 otn 06/10/05(木) 20:16
1434.Re:日付データのフォーマットチェックについてです。 NORIKO 06/10/10(火) 16:42
1435.Re:日付データのフォーマットチェックについてです。 otn 06/10/11(水) 19:45
1441.Re:日付データのフォーマットチェックについてです。 NORIKO 06/10/12(木) 14:45
1417.Re:日付データのフォーマットチェックについてです。 じゃく 06/10/06(金) 08:41
1430.Re:日付データのフォーマットチェックについてです。 NORIKO 06/10/10(火) 13:46
 
 


カテゴリー「DATE,TIME…日付、時刻の取得/利用」索引へ
カテゴリー「SET, PATH, %環境変数%」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2006年10月05日 11:16に投稿されたエントリーのページです。

ひとつ前の投稿は「ファイルリストを参照してファイルの存在を確認したい」です。

次の投稿は「Google検索ボックスについて」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート