32 lines
857 B
Plaintext
32 lines
857 B
Plaintext
NewList pdates.s()
|
|
|
|
Procedure.b IsLeap(y.i)
|
|
ProcedureReturn Bool( y % 4 = 0 ) & Bool( y % 100 <> 0 ) | Bool( y % 400 = 0 )
|
|
EndProcedure
|
|
|
|
If OpenConsole("")=0 : End 1 : EndIf
|
|
|
|
For j=2021 To 9999
|
|
For m=1 To 12
|
|
tm2=28+1*IsLeap(j)
|
|
For t=1 To 31
|
|
If m=2 And t>tm2 : Break : EndIf
|
|
If (m=4 Or m=6 Or m=9 Or m=11) And t>30 : Break : EndIf
|
|
s$=Str(j)+RSet(Str(m),2,"0")+RSet(Str(t),2,"0")
|
|
If ReverseString(s$)=s$
|
|
AddElement(pdates()) : pdates()=Mid(s$,1,4)+"-"+Mid(s$,5,2)+"-"+Mid(s$,7,2)
|
|
EndIf
|
|
Next t
|
|
Next m
|
|
Next j
|
|
|
|
PrintN("Count of palindromic dates [2021..9999]: "+Str(ListSize(pdates())))
|
|
FirstElement(pdates())
|
|
t$="First 15:"
|
|
For x=1 To 2
|
|
PrintN(~"\n"+t$)
|
|
For y=1 To 15 : PrintN(pdates()) : NextElement(pdates()) : Next
|
|
t$="Last 15:" : SelectElement(pdates(),ListSize(pdates())-15)
|
|
Next
|
|
Input() : End
|