[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:24023] Re: date



大里です。

> From: 早間義博
> Subject: [plamo:24020] date
> Date: Sun, 31 Oct 2004 07:56:17 +0900 (JST)

> date コマンドの 1ヶ月前・後が間違った値を返して来ます。
> $ date +%m
> 10
> $ date --date '-1 month' +%m
> 10
> $ date --date '-2 month' +%m
> 08
> $ date --date '+1 month' +%m
> 12
> $ date --date '+2 month' +%m
> 12

  そういう仕様だと思います。
  ソースは見ていませんが、挙動から思うに struct tm の tm_mon をイン
クリメントして、mktime() で正規化したものを localtime() で戻す、とい
うことをしているのではないかと思います。
  一般的な常識の「月末」とはちょっと違うのかも。

$ i=0; while [ ${i} -le 12 ]; do date --date "${i} month" +%m%d; i=$((i + 1)); done
1031
1201
1231
0131
0303
0331
0501
0531
0701
0731
0831
1001
1031

  10月31日の一ヶ月後は 11月31日=12月1日、四ヶ月後は2月31日=3月1日
と考えると論理的には正しい。

-- 
  kazz

Follow-Ups
[plamo:24024] Re: date, OOSATO,Kazzrou
[plamo:24026] Re: date, KOJIMA Mitsuhiro
References
[plamo:24020] date, 早間義博

[検索ページ] [メール一覧]
Plamo ML 公開システム