Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
91
Task/Palindrome-dates/Action-/palindrome-dates.action
Normal file
91
Task/Palindrome-dates/Action-/palindrome-dates.action
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
TYPE Date=[
|
||||
INT year
|
||||
BYTE month
|
||||
BYTE day]
|
||||
|
||||
BYTE FUNC IsLeapYear(INT y)
|
||||
IF y MOD 100=0 THEN
|
||||
IF y MOD 400=0 THEN
|
||||
RETURN (1)
|
||||
ELSE
|
||||
RETURN (0)
|
||||
FI
|
||||
FI
|
||||
|
||||
IF y MOD 4=0 THEN
|
||||
RETURN (1)
|
||||
FI
|
||||
RETURN (0)
|
||||
|
||||
BYTE FUNC GetMaxDay(INT y BYTE m)
|
||||
BYTE ARRAY MaxDay=[31 28 31 30 31 30 31 31 30 31 30 31]
|
||||
|
||||
IF m=2 AND IsLeapYear(y)=1 THEN
|
||||
RETURN (29)
|
||||
FI
|
||||
RETURN (MaxDay(m-1))
|
||||
|
||||
PROC NextDay(Date POINTER d)
|
||||
BYTE maxD
|
||||
|
||||
d.day==+1
|
||||
maxD=GetMaxDay(d.year,d.month)
|
||||
IF d.day>maxD THEN
|
||||
d.day=1
|
||||
d.month==+1
|
||||
IF d.month>12 THEN
|
||||
d.month=1
|
||||
d.year==+1
|
||||
FI
|
||||
FI
|
||||
RETURN
|
||||
|
||||
BYTE FUNC IsPalindrome(Date POINTER d)
|
||||
INT y
|
||||
|
||||
y=d.year
|
||||
IF y/1000#d.day MOD 10 THEN
|
||||
RETURN (0)
|
||||
FI
|
||||
y==MOD 1000
|
||||
IF y/100#d.day/10 THEN
|
||||
RETURN (0)
|
||||
FI
|
||||
y==MOD 100
|
||||
IF y/10#d.month MOD 10 THEN
|
||||
RETURN (0)
|
||||
FI
|
||||
y==MOD 10
|
||||
IF y#d.month/10 THEN
|
||||
RETURN (0)
|
||||
FI
|
||||
RETURN (1)
|
||||
|
||||
PROC PrintB2(BYTE x)
|
||||
IF x<10 THEN
|
||||
Put('0)
|
||||
FI
|
||||
PrintB(x)
|
||||
RETURN
|
||||
|
||||
PROC PrintDateShort(Date POINTER d)
|
||||
PrintI(d.year) Put('-)
|
||||
PrintB2(d.month) Put('-)
|
||||
PrintB2(d.day)
|
||||
RETURN
|
||||
|
||||
PROC Main()
|
||||
BYTE count
|
||||
Date d
|
||||
|
||||
count=0
|
||||
d.year=2020 d.month=2 d.day=3
|
||||
WHILE count<15
|
||||
DO
|
||||
IF IsPalindrome(d) THEN
|
||||
PrintDateShort(d) PutE()
|
||||
count==+1
|
||||
FI
|
||||
NextDay(d)
|
||||
OD
|
||||
RETURN
|
||||
Loading…
Add table
Add a link
Reference in a new issue