假设我有一个特定的日期存储在变量中date_m
。我想要((date_m)-25)
约会。
例如:我已经15/09/2014
存储在我的变量中,那么21/08/2014
如果我从存储在变量中的日期减去 25,我想返回。
答案1
使用 GNU 实现date
,要显示昨天的日期,请输入:
$ date --date="1 days ago"
或者
$ date --date="-1 day"
对于你的问题:
$ date --date="25 days ago"
或者
$ date --date="-25 day"
要将其与变量一起使用,您可以使用$()
:
pastDate=$(date --date="-25 day")
echo "$pastDate"
对于一般情况n
日和特定日期:
#!/bin/bash
date1="Tue Sep 2 07:53:47 EEST 2014"
echo "Before? "
read n
date --date="$date1 -$n day"
答案2
下面宣布日期和天数。
该脚本以秒为单位转换日期,并计算Tp1
从给定时间点 2 ( ) 减去天数(以秒为单位)后的时间点 1 ( ) Tp2
。最后秒数被转换回日期。
Date_m=2014/09/15
Days=25
Seconds=$(echo "$Days"*60*60*24| bc -l)
Tp2date=$(date -d "$Date_m" +%Y/%m/%d)
Tp2sec=$(date -d "$TD" +%s)
Tp1sec=$(echo "$TDsec"-"$Seconds"| bc -l)
Tp1date=$(date -d @$Tp1sec)
echo "$Tp1date"
答案3
有点晚了,这是一种处理非美国 dd/mm/yyyy 格式日期的方法,并进行 25 天相对调整:
date_m='15/09/2014'
date --date "$(IFS=/ read d m y <<<"$date_m"; echo "$m/$d/$y - 25 days")" +%d/%m/%Y
21/08/2014
它确实假设有一个 shell,例如bash
能够处理字符串重定向的shell<<<
和 GNU date
。