■掲示板に戻る■ 1- 最新50日付の計算
- 1 :名無しさん@お腹いっぱい。 :2001/06/22(金) 08:01
- 博識な方、教えて下され。
現在の日付の「一日前」を一発で表示するコマンドってないでしょうか?
AIXってdateの-aが機能しないので、ちょっと困ってます。
- 2 :名無しさん@引く手あまた :2001/06/22(金) 08:28
- こういうのはサクッと作ればいい。
「昨日の日付」だけでいいんだから、過去の日付を考えないで、
しかもどうせ死んでるんだろうから2100年のうるう年も考えない。
(ちょっと手を加えたら簡単に対応できるんだけど。出勤前なのでパス)
#!/usr/bin/sh
today=`date '+%Y-%m-%d'`
year=`expr ${today} : '^\(....\)-..-..$' \| \1`
month=`expr ${today} : '^....-\(..\)-..$' \| \1`
day=`expr ${today} : '^....-..-\(..\)$' \| \1`
if [ ${day} != "01" ]; then
day=`expr ${day} - 1`
else
case ${month} in
01) year=`expr ${year} - 1`
month=12
day=31;;
02|04|06|08|09|11) month=`expr ${month} - 1`
day=31;;
03) month=2
day=28;;
05|07|10|12) month=`expr ${month} - 1`
day=30;;
esac
fi
printf "%04s-%02s-%02s" ${year} ${month} ${day}
- 3 :名無しさん@Emacs :2001/06/22(金) 08:38
- >しかもどうせ死んでるんだろうから2100年のうるう年も考えない。
2100年どころか2004年のうるう年にも対応してないようですが。
つーか、こんなクソスレ立てた>>1はGNU dateを入れてさっさとどっか逝け。
- 4 :名無しさん :2001/06/22(金) 11:37
- いや、2100年にはちゃんと対応してますよ。
2004年は駄目だけど(w
- 5 :名無しさん@お腹いっぱい。 :2001/06/22(金) 13:59
- perl だったら、こんなかんじ。
my @a = localtime(time-24*60*60);
printf "%s/%s/%s\n",$a[5]+1900,$a[4]+1,$a[3];
- 6 :名無しさん@お腹いっぱい。 :2001/06/22(金) 15:30
- 秒に直して、24*60*60引いて、年月日にまた戻せばいい。
- 7 :名無しさん@お腹いっぱい。 :2001/06/22(金) 15:39
- >>6
>>5ではそうしてるよ。
次100 最新50read.cgi ver5.26+ (01/10/21-)