我正在尝试获取本月的最后一天,或者最后一个月,我用来解决此“问题”的方法是通过以下方式进行检查:
if [ $DAY -eq 1 ]; then
code here;
fi
如果日期是1,则表示我在新的月份,因此我也需要进行备份。
例如,如果今天是月份“ 1月31日”的最后一天,你们有什么想法吗?
谢谢!!!!
答案 0 :(得分:3)
获取一个月的最后一天有时很棘手,因为并非所有月份的课程天数都相同。
一种方法是获取本月的第一天,在该月的第一天加上一个月(以获取下个月的第一天),然后减去一天。
date --date="$(date +%Y-%m-01) +1 month -1 day"
thu jan 31 00:00:00 -07 2019
请记住,date
可以输出所需的任何格式(以+
开头的参数)。
date --date="$(date +%Y-%m-01) +1 month -1 day" '+%F'
2019-01-31
有关更多信息,请参见man date
,有关更多信息,请参见info '(coreutils) date invocation'
。
答案 1 :(得分:2)
这给您上个月的最后一天
date -d "-$(date +%d) days -0 month"
这将为您提供当月的最后一天
date -d "-$(date +%d) days +1 month"
if [[ $(date +%d%m%Y -d "-$(date +%d) days +1 month") != $(date +%d%m%Y) || $(date +%d%m%Y -d "-$(date +%d) days -0 month") != $(date +%d%m%Y) ]]
echo "Today is NOT the last day of the month"
else
echo "Today is the last day of the month"
fi
答案 2 :(得分:1)
一种方法是使用GNU日期:
if [[ $(date -d "+1 day" +%m) != $(date +%m) ]]
then
echo "Today is the last day of the month"
else
echo "Today is NOT the last day of the month"
fi