|
665) 日付取得について NT 2002/09/17(火) 13:40 |
|
一ヶ月前の日付を取得する方法を教えてください。 例)20020917→20020817 |
|
666) Re:日付取得について じゃく 2002/09/17(火) 14:15 |
|
こんにちは >一ヶ月前の日付を取得する方法を教えてください。 >例)20020917→20020817 OSが98,95系ですと標準のコマンドだけでは困難でしょう。 NT,2000,XP系では条件さえあえばできないことはないかと 思います。 そこで、質問者のNTさんの求めている「1ヶ月前」は どのような仕様なのでしょうか? たとえば、3月30日の1ヶ月前は何日になるのをご希望ですか? 質問の例からすると、年も含めて考慮するようですが、年の範囲を限定できますか? (たとえば、2000年以降に限定してもよいとか) |
|
667) Re2:日付取得について NT 2002/09/17(火) 14:23 |
|
>こんにちは > >>一ヶ月前の日付を取得する方法を教えてください。 >>例)20020917→20020817 > >OSが98,95系ですと標準のコマンドだけでは困難でしょう。 >NT,2000,XP系では条件さえあえばできないことはないかと >思います。 > >そこで、質問者のNTさんの求めている「1ヶ月前」は >どのような仕様なのでしょうか? >たとえば、3月30日の1ヶ月前は何日になるのをご希望ですか? > >質問の例からすると、年も含めて考慮するようですが、年の範囲を限定できますか? >(たとえば、2000年以降に限定してもよいとか) > 今回、使用したいと思っているのは、OSはNT4.0 Server、日付につきましては現在以降でyyyymm形式で取得したいのですが・・・。よろしくお願いします。 |
|
668) Re3:日付取得について じゃく 2002/09/17(火) 15:27 |
|
NTさんこんにちは。 ご回答ありがとうございます。 >今回、使用したいと思っているのは、OSはNT4.0 Server、日付につきましては現在以降でyyyymm形式で取得したいのですが・・・。 なるほど、年月日ではなく、年月のみで1ヶ月前を取得できれば いいのですね。WindosXPでうまくいったバッチを紹介します。 NT4.0のコマンドプロンプトで set /a や 部分文字列の取得が できない可能性もありますので、その場合はうまく動かないかも しれません。 @echo off REM 一ヶ月前の月を求める REM 求めた内容は環境変数 ANS にセットする set yyyymmdd=%DATE:/=% set y=%yyyymmdd:~0,4% set m=%yyyymmdd:~4,2% set m=%m:0=% set /a x=m-1 if %x% GEQ 1 goto OK set /a x=x+12 set /a y=y-1 :OK set x=0%x% set ans=%y%%x:~-2% echo %ans% set yyyymmdd= set y= set m= set x= |
|
669) Re4:日付取得について NT 2002/09/17(火) 15:48 |
|
じゃくさん。 どうもありがとうございます。 NT用に手を加えたところ、希望どおりに出来ました。 |
|
670) Re5:日付取得について【訂正】 じゃく 2002/09/17(火) 17:15 |
|
NTさんこんにちは。 >じゃくさん。 >どうもありがとうございます。 >NT用に手を加えたところ、希望どおりに出来ました。 掲載したバッチに問題がありました。 10月に誤動作しますので、訂正したものを再掲します。 @echo off REM 一ヶ月前の月を求める REM 求めた内容は環境変数 ANS にセットする set yyyymmdd=%DATE:/=% set y=%yyyymmdd:~0,4% set m=%yyyymmdd:~4,2% REM 先頭の0を除かないと8進数と解釈される if not "%m%"=="10" set m=%m:0=% set /a x=m-1 if %x% GEQ 1 goto OK set /a x=x+12 set /a y=y-1 :OK set x=0%x% set ans=%y%%x:~-2% echo %ans% set yyyymmdd= set y= set m= set x= |