
shell脚本关于时间的判断
1个回答
展开全部
这个用linux的date命令就可以实现,主要是判断当前的小时是否位于0晨就可以。代码大致如下:
#!/bin/sh
currentHour=$(date +%H)
if [ $currentHour -eq 00 ]
then
currentTime=$(date +%s);
tmp=$(($currentTime-3600));
echo $(date -d "@$tmp" +%Y-%m-%d);
else
echo $(date +%Y-%m-%d);
fi
更多追问追答
追问
您好,您的代码判断有些不符合要求。
如果当前时间在0点之前,输出”今天日期“ 已达到条件
如果当前时间在0点过后,输出”昨天日期“ 未达到条件,如果系统时间是大于0点的话,比如凌晨1:00,不能 输 出昨天的日期
追答
这个问题本身就有些问题,回答的时候我也考虑过。实际上那么对于今天0晨而言,晚上23点的时候,也属于0点之后,应该输出昨天的日期;但是相较于第二天的凌晨,又属于0晨之前的,因此要输出今天的日期。这本身就有所矛盾。因此,这种问题的判断,一般而言是以0晨前后几个小时为判断的。因为任何一个时间都会出现在今天的0晨之后和明天的0晨之间。任何一个时间肯定会同时满足你题目中的两个条件,只是条件中的凌晨不同(第一天凌晨&&第二天的凌晨)。如果能定义个时间范围就好了,比如凌晨之后6个小时之内的.....如果这样,可以把-3600改为减去相应小时的秒数。希望能对你有所帮助。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询