Ora*_*tos 2 unix linux shell ubuntu
我试图获得本月或上个月的最后一天,我用来解决这个“问题”的方法是检查:
if [ $DAY -eq 1 ]; then
code here;
fi
Run Code Online (Sandbox Code Playgroud)
如果一天是 1,那么它说我在新的一个月,所以我也需要做备份。
例如,你们知道如果今天是“1 月 31 日”月份的最后一天,我该如何检查???
谢谢!!!!
获取一个月的最后一天有时很棘手,因为当然并非所有月份都有相同的天数。
一种方法是获取本月的第一天,加上一个月(以获得下个月的第一天),然后减去一天。
date --date="$(date +%Y-%m-01) +1 month -1 day"
thu jan 31 00:00:00 -07 2019
Run Code Online (Sandbox Code Playgroud)
请记住,它date可以输出您想要的任何格式(以 开头的参数+)。
date --date="$(date +%Y-%m-01) +1 month -1 day" '+%F'
2019-01-31
Run Code Online (Sandbox Code Playgroud)
查看man date更多信息或更多信息info '(coreutils) date invocation'。
一种方法是使用 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
Run Code Online (Sandbox Code Playgroud)
这给你上个月的最后一天
date -d "-$(date +%d) days -0 month"
Run Code Online (Sandbox Code Playgroud)
这给你当月的最后一天
date -d "-$(date +%d) days +1 month"
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5069 次 |
| 最近记录: |