Rebol3 Code Examplex
Palindrome dates
Dates whose digits read the same forward and backward in a given date format, such as 02/02/2020 in MM/DD/YYYY.
Rebol [
title: "Rosetta code: Palindrome dates"
file: %Palindrome_dates.r3
url: https://rosettacode.org/wiki/Palindrome_dates
]
palindrome-date?: function [
"Returns true if the date reads the same forwards and backwards in YYYYMMDD format."
date [date!]
][
formated: format-datetime date "yyyymmdd" ;; e.g. 20210112
did equal? formated reverse copy formated ;; compare original vs reversed
]
print as-yellow "First 15 palindrome dates after 2020-02-02 are:"
n: 0 date: 2020-2-3 ;; search start date
until [
if palindrome-date? date [
++ n
printf [-7 ": " <yyyy-mm-dd>] [n date] ;; print index and date
]
date: date + 1 ;; advance by one day
n >= 15 ;; stop after finding 15 palindrome dates
]Output:
First 15 palindrome dates after 2020-02-02 are:
1: 2021-12-02
2: 2030-03-02
3: 2040-04-02
4: 2050-05-02
5: 2060-06-02
6: 2070-07-02
7: 2080-08-02
8: 2090-09-02
9: 2101-10-12
10: 2110-01-12
11: 2111-11-12
12: 2120-02-12
13: 2121-12-12
14: 2130-03-12
15: 2140-04-12