Advertisement
Guest User

Untitled

a guest
Dec 9th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.56 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. if (echo "$1" | grep -E -q "^?[0-9]+$"); then
  4.     if [ $1 -ge 1 -a $1 -le 7 ]
  5.         then
  6.         echo Вы ввели корректное число
  7.         d=$1
  8.         let "d-=1"
  9.     else
  10.         echo Некорректное число
  11.         exit 1
  12.     fi
  13. else
  14.     echo Вы не ввели число
  15.     exit 1
  16. fi
  17.  
  18. if [ -n "$2" ]                  # Проверка, что мы подаем год на вход
  19.     then
  20.     year=$1                     # Если условие выполняется, сохраняем в year
  21.     else
  22.     year=`date +%Y`             # В противном случае - сохраняю текущий год
  23. fi
  24. echo $year          
  25.  
  26. for (( i=$d; i < 7;i++ ))        # Перебор по дня недели, которые содержат дней >= n
  27.     do
  28.     day=`date -d "monday + $i day " +%a`
  29.     curstr=$day
  30.     for (( j=1; j <= 12; j++ ))         # Перебор по месяцам
  31.         do
  32.         curday=`date -d "1 Jan $year + $j month - 1 day" +%a` # Определяю и присваиваю день недели последнего дня в месяце
  33.         if [ "$day" == "$curday" ] # Если день недели = дню недели последнего дня месяца
  34.             then        # Это значит, что я знаю, количество дней в последней неделе
  35.             curstr=`date -d "1 Jan $year + $j month -1 day" +%B`' '
  36.             echo $curstr    # Вывод месяца
  37.         fi
  38.     done
  39. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement