calendar.BAS

{* Календарь *}

REM basic

' Календарь


CLS {ect{ gluki, no algoritm horosh!
}
}COLOR 15
Dim dayweek(6) As String, mesiaz(12) As String
DATA "суббота","воскресенье","понедельник","вторник","среда","четверг","пятница"
For i = 0 To 6
   READ dayweek(i)
Next i
DATA "января ","февраля ","марта ","апреля ","мая ","июня ","июля ","августа ","сентября ","октября ","ноября ","декабря "
For i = 1 To 12
   READ mesiaz(i)
Next i

COLOR 10: INPUT "day ", day
COLOR 11: INPUT "month ", mes
COLOR 13: INPUT "year ", year$
If mes > 12 Or day > 31 Or LEN(year$) > 4 Then COLOR 12: PRINT "Error": End
If mes < 1 Or day < 1 Or LEN(year$) < 4 Then COLOR 12: PRINT "Error": End

st = VAL(LEFT$(year$, 2))
year = VAL(RIGHT$(year$, 2))

If mes = 1 Or mes = 10 Then month = 1
If mes = 2 Or mes = 3 Or mes = 11 Then month = 4
If mes = 4 Or mes = 7 Then month = 0
If mes = 5 Then month = 2
If mes = 6 Then month = 5
If mes = 8 Then month = 3
If mes = 9 Or mes = 12 Then month = 6

ch = FIX(year / 12)
os = year - ch * 12
ch4 = FIX(os / 4)
sum = ch + os + ch4
chislo = sum - FIX(sum / 7) * 7
dat = chislo + day + month
dn = dat - FIX(dat / 7) * 7

If year - FIX(year / 4) = 0 And mes = 1 Or mes = 2 Then dn = dn - 1: COLOR 14: PRINT dn
If VAL(year$) > 1999 Then dn = dn - 1: COLOR 15: PRINT dn
If dn < 0 Then dn = 7 + dn
COLOR 15: PRINT day; mesiaz(mes); year$; " - "; dayweek(dn)
End