linux shell中日期,linux shell 获得以前日期

在linux shell里,我想获得以前的日期,

1、比如,去年的上个月的昨天的日期:(今天是2009年2月2日,也就是2008年1月1日)

reasonpun@reasonpun:~$ logRecordDate="`date -d "-1 year -1 month -1 day" "+%Y_%m_%d"`"

reasonpun@reasonpun:~$ echo $logRecordDate

2008_01_01

reasonpun@reasonpun:~$

2、上个月的今天:

reasonpun@reasonpun:~$ logRecordDate="`date -d "-1 month" "+%Y_%m_%d"`"

reasonpun@reasonpun:~$ echo $logRecordDate

2009_01_02

3、去年的今天:

reasonpun@reasonpun:~$ logRecordDate="`date -d "-1 year" "+%Y_%m_%d"`"

reasonpun@reasonpun:~$ echo $logRecordDate

2008_02_02

4、上个月的昨天:

reasonpun@reasonpun:~$ logRecordDate="`date -d "-1 month -1 day" "+%Y_%m_%d"`"

reasonpun@reasonpun:~$ echo $logRecordDate

2009_01_01

其他的类推~~呵呵,还是希望大家给测测其他日期会不会出错呵呵。多谢~~~

鼓捣之环境:ubuntu8.04

另附上windows下获得前一天的日期:

@echo off

set td=%date:~2,2%%date:~5,2%%date:~8,2%

set dy=%date:~0,4%

set dm=%date:~5,2%

set dd=%date:~8,2%

set da=%date:~8,2%

if %dm%%dd%==0101 goto L01

if %dm%%dd%==0201 goto L02

if %dm%%dd%==0301 goto L07

if %dm%%dd%==0401 goto L02

if %dm%%dd%==0501 goto L04

if %dm%%dd%==0601 goto L02

if %dm%%dd%==0701 goto L04

if %dm%%dd%==0801 goto L02

if %dm%%dd%==0901 goto L02

if %dm%%dd%==1001 goto L05

if %dm%%dd%==1101 goto L03

if %dm%%dd%==1201 goto L06

if %dd%==02 goto L10

if %dd%==03 goto L10

if %dd%==04 goto L10

if %dd%==05 goto L10

if %dd%==06 goto L10

if %dd%==07 goto L10

if %dd%==08 goto L10

if %dd%==09 goto L10

if %dd%==10 goto L11

set /A dd=dd-1

set dt=%dy%-%dm%-%dd%

goto END

:L10

set /A dd=%dd:~1,1%-1

set dt=%dy%-%dm%-0%dd%

goto END

:L11

set dt=%dy%-%dm%-09

goto END

:L02

set /A dm=%dm:~1,1%-1

set dt=%dy%-0%dm%-31

goto END

:L04

set /A dm=dm-1

set dt=%dy%-0%dm%-30

goto END

:L05

set dt=%dy%-09-30

goto END

:L03

set dt=%dy%-10-31

goto END

:L06

set dt=%dy%-11-30

goto END

:L01

set /A dy=dy-1

set dt=%dy%-12-31

goto END

:L07

set /A "dd=dy%%4"

if not %dd%==0 goto L08

set /A "dd=dy%%100"

if not %dd%==0 goto L09

set /A "dd=dy%%400"

if %dd%==0 goto L09

:L08

set dt=%dy%-02-28

goto END

:L09

set dt=%dy%-02-29

goto END

:END

set dateTime=20%dt:~2,2%%dt:~5,2%%dt:~8,2%

阅读(1254) | 评论(0) | 转发(0) |

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值