01MDM
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Код: @echo off setlocal set /p date="Date (dd.mm.YYYY): " Set d=%date:~0,2% Set m=%date:~3,2% Set y=%date:~6,4% if %d:~0,1%==0 set d=0x%d% if %m:~0,1%==0 set m=0x%m% if %m% gtr 2 ( set /a m+=1 ) else ( set /a m+=13 set /a y-=1 ) set /a n=36525*y/100+306*m/10+d-621050 set /a dow=n-n/7*7+1 if %dow%==1 set dow=Mon if %dow%==2 set dow=Tue if %dow%==3 set dow=Wed if %dow%==4 set dow=Thu if %dow%==5 set dow=Fri if %dow%==6 set dow=Sat if %dow%==7 set dow=Sun echo is %dow% | Код: :: :: Определяем день недели из любой даты нашей эры. Формат даты dd.mm.yyyy :: @echo off setlocal 1>nul chcp 1251 set /p date="Дата: " for /f "tokens=1-3 delims=." %%i in ("%date%") do ( set "d=1%%i" & set "m=1%%j" & set "y=1%%k" ) for %%i in (d m) do set /a %%i-=100 set /a y-=10000 :: Одинаковый день недели повторяется раз в 28 лет... Каждые 7 високосных циклов. if %y% geq 2029 (set "step=-28,2001") else (set "step=28,2029") for /l %%i in (%y%,%step%) do set "y=%%i" for /f %%i in ('set /a y%%4') do if %%i==0 (set "feb=1") else (set "feb=0") for /f "tokens=%m%" %%i in ("0 31 59 90 120 151 181 212 243 273 304 334") do set /a yd=%%i+d if %m% gtr 2 set /a yd+=feb set /a wd=(((y-2001)/4+(y-2001)*365)+yd)%%7+1 for /f "tokens=%wd%" %%i in ("Воскресенье Понедельник Вторник Среда Четверг Пятница Суббота") do echo %%i 1>nul chcp 866 | | Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 10:47 27-11-2009 | Исправлено: 01MDM, 10:57 27-11-2009 |
|