Jump to content

Calendar: Difference between revisions

5,218 bytes added ,  9 years ago
Add Batch File Solution
(→‎{{header|Haskell}}: Add Fortran)
(Add Batch File Solution)
Line 844:
 
</pre>
 
=={{header|Batch File}}==
<lang>::Calender Task from Rosetta Code Wiki
::Batch File Implementation
 
@echo off
setlocal enabledelayedexpansion
 
%== Set a valid year [will not be validated] ==%
set y=1969
 
%== Set the variables for months (feb_l=the normal 28 days) ==%
set jan_l=31&set apr_l=30
set mar_l=31&set jun_l=30
set may_l=31&set sep_l=30
set jul_l=31&set nov_l=30
set aug_l=31&set feb_l=28
set oct_l=31
set dec_l=31
 
%== Compute day for first day of the year ==%
set /a d=(y/4+y)-(y/100-y/400)
 
%== Check if that year is a leap year ==%
set /a "op1=y%%4","op2=y%%100","op3=y%%400"
if not "%op1%"=="0" (goto :no_leap)
if not "%op2%"=="0" (goto :yes_leap)
if not "%op3%"=="0" (goto :no_leap)
:yes_leap
%== Ooops... Leap year. Change feb_l to 29. ==%
set feb_l=29
set/a d-=1
:no_leap
 
%== Computer weekday of the first day... ==%
set /a d%%=7
 
%== Generate everything that's inside the calendar ==%
for %%a in (jan feb mar apr may jun jul aug sep oct nov dec) do (
set %%a=
set chars_added=0
for /l %%b in (1,1,!d!) do (set "%%a=!%%a! "&set /a chars_added+=3)
for /l %%c in (1,1,!%%a_l!) do (
if %%c lss 10 (set "%%a=!%%a! %%c ") else (set "%%a=!%%a!%%c ")
set /a chars_added+=3
)
for /l %%d in (!chars_added!,1,124) do set "%%a=!%%a! "
set /a d=^(d+%%a_l^)%%7
)
 
%== Display the calendar ==%
cls
echo.
echo. [SNOOPY]
echo.
echo. YEAR = %y%
echo.
echo. January February March
echo. Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
echo. %jan:~0,20% %feb:~0,20% %mar:~0,20%
echo. %jan:~21,20% %feb:~21,20% %mar:~21,20%
echo. %jan:~42,20% %feb:~42,20% %mar:~42,20%
echo. %jan:~63,20% %feb:~63,20% %mar:~63,20%
echo. %jan:~84,20% %feb:~84,20% %mar:~84,20%
echo. %jan:~105% %feb:~105% %mar:~105%
echo.
echo. April May June
echo. Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
echo. %apr:~0,20% %may:~0,20% %jun:~0,20%
echo. %apr:~21,20% %may:~21,20% %jun:~21,20%
echo. %apr:~42,20% %may:~42,20% %jun:~42,20%
echo. %apr:~63,20% %may:~63,20% %jun:~63,20%
echo. %apr:~84,20% %may:~84,20% %jun:~84,20%
echo. %apr:~105% %may:~105% %jun:~105%
echo.
echo. July August September
echo. Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
echo. %jul:~0,20% %aug:~0,20% %sep:~0,20%
echo. %jul:~21,20% %aug:~21,20% %sep:~21,20%
echo. %jul:~42,20% %aug:~42,20% %sep:~42,20%
echo. %jul:~63,20% %aug:~63,20% %sep:~63,20%
echo. %jul:~84,20% %aug:~84,20% %sep:~84,20%
echo. %jul:~105% %aug:~105% %sep:~105%
echo.
echo. October November December
echo. Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
echo. %oct:~0,20% %nov:~0,20% %dec:~0,20%
echo. %oct:~21,20% %nov:~21,20% %dec:~21,20%
echo. %oct:~42,20% %nov:~42,20% %dec:~42,20%
echo. %oct:~63,20% %nov:~63,20% %dec:~63,20%
echo. %oct:~84,20% %nov:~84,20% %dec:~84,20%
echo. %oct:~105% %nov:~105% %dec:~105%
echo.
pause
endlocal</lang>
{{Out}}
<pre>
 
[SNOOPY]
 
YEAR = 1969
 
January February March
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 1 1
5 6 7 8 9 10 11 2 3 4 5 6 7 8 2 3 4 5 6 7 8
12 13 14 15 16 17 18 9 10 11 12 13 14 15 9 10 11 12 13 14 15
19 20 21 22 23 24 25 16 17 18 19 20 21 22 16 17 18 19 20 21 22
26 27 28 29 30 31 23 24 25 26 27 28 23 24 25 26 27 28 29
30 31
 
April May June
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 1 2 3 1 2 3 4 5 6 7
6 7 8 9 10 11 12 4 5 6 7 8 9 10 8 9 10 11 12 13 14
13 14 15 16 17 18 19 11 12 13 14 15 16 17 15 16 17 18 19 20 21
20 21 22 23 24 25 26 18 19 20 21 22 23 24 22 23 24 25 26 27 28
27 28 29 30 25 26 27 28 29 30 31 29 30
 
 
July August September
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 1 2 1 2 3 4 5 6
6 7 8 9 10 11 12 3 4 5 6 7 8 9 7 8 9 10 11 12 13
13 14 15 16 17 18 19 10 11 12 13 14 15 16 14 15 16 17 18 19 20
20 21 22 23 24 25 26 17 18 19 20 21 22 23 21 22 23 24 25 26 27
27 28 29 30 31 24 25 26 27 28 29 30 28 29 30
31
 
October November December
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 1 1 2 3 4 5 6
5 6 7 8 9 10 11 2 3 4 5 6 7 8 7 8 9 10 11 12 13
12 13 14 15 16 17 18 9 10 11 12 13 14 15 14 15 16 17 18 19 20
19 20 21 22 23 24 25 16 17 18 19 20 21 22 21 22 23 24 25 26 27
26 27 28 29 30 31 23 24 25 26 27 28 29 28 29 30 31
30
 
Press any key to continue . . .</pre>
 
=={{header|BBC BASIC}}==
535

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.