linux shell 怎么得到上星期天的日期

linux shell 怎么得到上星期天的日期,第1张

#获取7天前日期

v_acct_month='20170603'

newdata=`date -d "$v_acct_month 7 day ago" +"%Y%m%d"`

echo $newdata

today"

"昨天是: todayAddDays(-1))"

"明天是: todayAddDays(1))"

"一周前是: todayAddDays(-7))"

"五个月前: todayAddMonths(-5))"

"十年之前: todayAddYears(-10)Year)年,我们是朋友"

"格式化日期:" + $todayToString('yyyy-MM-dd')

#!/bin/bash

# Program:

# Tring to calculate your demobilization date at how many days

# later

# History:

# 2008/5/1 cc First release

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin

export PATH //说明解释代码是用来做什么的。

echo "This prorgram will try to calculate :"

echo "How many days about your demobilization date"

read -p "Please input your demobilization date (YYYYMMDD ex>20050401): " date2

date_d=`echo $date2 | grep '[0-9]\{8\}' ` //告诉用户程序的用途,并且说明应该如何输入日期格式

declare -i date_dem=`date --date="$date2" +%s`

declare -i date_now=`date +%s`

declare -i date_total_s=$(($date_dem-$date_now))

declare -i date_d=$(($date_total_s/60/60/24))

if [ "$date_total_s" -lt "0" ]; then

echo "You had been demobilization before: " $((-1date_d)) " ago"

else

declare -i date_h=$(($date_total_s-$date_d606024))/60/60))

echo "You will be demobilized after $date_d days and $date_h hours"

Fi //开始计算日期

date -d" -11 month " +%Y%m%d

获取到当天的日期

然后再判断月份,如果是1,3,5,7,8,10,12

那么把日期替换成31

如果是4,6,9,11

那么把日期替换成30

如果是2

还得去判断是否为闰年

是闰年就29

不是就28

1,$HOME/getdatesh,内容如下:

#!/bin/bash

DATE=/bin/date

$DATE +"%F %T" >>$HOME/date_loglog

2 $HOME/call_gdsh,内容如下

#!/bin/bash

SH=/bin/sh

${SH} $HOME/getdatesh

想把月份和日子左边的0去掉是吧, 用这个看看

echo `date +%Y-%m-%d` | awk -F"-" '{printf("date is %d-%d-%d\n",$1,$2,$3)}'

1、date +%w

%w day of week (06); 0 is Sunday

2、如果星期2-6,上一个工作日肯定就是

t1=`date -d yesterday`

或者

t2=`date -d -1day`

3、如果星期天,上一个工作日肯定就是

t3=`date -d -2day`

4、如果星期1,上一个工作日肯定就是

t4=`date -d -3day`

5、法定节假日根据实际情况算吧

6、实例

#!/bin/sh

week=`date +%w`

case "$week" in

0)

last_work_day=`date -d -2day`

;;

1)

last_work_day=`date -d -3day`

;;

)

last_work_day=`date -d -1day`

;;

esac

echo $last_work_day

24小时,就是相差一天,所以变化的只有天数。

我这里提供一个笨方法:

用date获取当前日期和时间,格式化成你的文件命名格式,用下面的字符串截取方法获得天数:

${varible:n1:n2}:截取变量varible从n1到n2之间的字符串

天数减1后,重新组织成新的字符串。

用循环比较 ls 出来的文件名与这个字符串。

代码试过后再放上来。

以上就是关于linux shell 怎么得到上星期天的日期全部的内容,包括:linux shell 怎么得到上星期天的日期、window powershell 获取前后日期,格式化日期、shell 计算日期等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9721296.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存