如何查找过去日期的未来n天?

时间:2014-08-21 16:23:30

标签: bash date date-arithmetic

我希望使用datebash找到任意日期后57个工作日的日期。例如,

  1. 今天是8月21日,
  2. 参考日期是7月15日,
  3. 7月15日之后的57个工作日是几天?

2 个答案:

答案 0 :(得分:2)

这应该可以解决所有日子

date -d '7/15/14 +57 days'

要获得工作天数(M..F),你可以做一些像这样懒惰的事情

#!/bin/bash
days=0
for ((i=1;i>0;i++)) do
  future=$(date -d "7/15/14 +$i days" '+%w')
  ((future!=0 && future!=6)) && ((days++))  # ignore sunday (0) and saturday (6)
  ((days==57)) && date -d "7/15/14 +$i days" && break
done

e.g。

> ./abovescript
> Thu Oct  2 00:00:00 CDT 2014

答案 1 :(得分:0)

奇怪的解决方案:

day=21
mon=8
year=2014
days=4

curl -s "http://www.timeanddate.com/scripts/dateserver.php?mode=addweekdays&d1=$day&m1=$mon&y1=$year&type=add&ad=$days&atyp=0&ach=3" | sed -n 's|.*<h2>Result: \(.*\)</h2>.*|\1|p'

打印

Wednesday, August 27, 2014

自2014.08.21起4个工作日后的日期

用于

day=15
mon=7
year=2014
days=57

打印

Friday, October 3, 2014