월말이 주말인지 어떻게 확인하나요?

월말이 주말인지 어떻게 확인하나요?

주말에 월말 날짜를 확인하고 가져와야 하는데, 누구든지 도와줄 수 있나요?

답변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

관련 정보