주말에 월말 날짜를 확인하고 가져와야 하는데, 누구든지 도와줄 수 있나요?
답변1
GNU 사용 date
:
[[ $(date -d "-$(date +%d)days month" +%u) = [67] ]] && echo 'Month-End falls on weekend'
일반적으로 date -d "-$(date +%d)days month"
이는 이번 달의 일수를 빼고 한 달의 결과를 더하는 것을 의미합니다.
date -d'-XXX days + 1month'
XXX
우리는 일수를 계산하고 얻습니다 date +%d
.
시험2021년 1월주말 종료:
[[ $(date -d "-$(date +%d)days 3month" +%u) = [67] ]] && echo 'Month-End falls on weekend'
~에서승인하다%u
는 요일의 FORMAT 제어입니다(1..7) .월요일에. 따라서 해당 지역의 주말 일정에 따라 위의 6번과 7번을 변경하시기 바랍니다.
답변2
쉘 포함 ksh93
:
month='this month'
month='2020-11'
month='November 2020'
if [[ ${ printf '%(%u)T' "last day in $month"; } = [67] ]]; then
print "Last day in $month falls on a weekend"
fi
셸을 사용하여 zsh
다음 달의 첫날이 일요일인지 월요일인지 확인합니다.
zmodload zsh/datetime
strftime -s month %Y-%m # this month
month=2020-11 # given month
last_day_on_a_weekend() {
local TZ=UTC0 y m t
y=${1%-*} m=${1#*-}
if (( ++m > 12 )); then
(( y++ )); m=1
fi
strftime -rs t %Y-%m-%d $y-$m-1
strftime -s t %u $t
[[ $t = [71] ]]
}
if last_day_on_a_weekend $month; then
print "Last day in $month falls on a weekend"
fi