French Republican calendar: Difference between revisions
m
→{{header|Wren}}: Minor tidy
m (→{{header|Wren}}: Minor tidy) |
|||
(4 intermediate revisions by 4 users not shown) | |||
Line 21:
=={{header|BBC BASIC}}==
Computes leap years using the "continuous" method: a year in the Republican calendar is a leap year if and only if the number of the <i>following</i> year is divisible by 4 but not by 100 unless also by 400. No attempt is made to deal with ill-formed or invalid input dates.
<
:
DIM gregorian$(11)
Line 157:
:
DEF FN_gre_leap(year%)
= (year% MOD 4 = 0 AND (year% MOD 100 <> 0 OR year% MOD 400 = 0))</
<b>Output for the test dates:</b>
<pre>*** French Republican ***
Line 199:
{{trans|BBC BASIC}}
Computes leap years using the "continuous" method: a year in the Republican calendar is a leap year if and only if the number of the <i>following</i> year is divisible by 4 but not by 100 unless also by 400. No attempt is made to deal with ill-formed or invalid input dates.
<
' compile with: fbc -s console
' retained the original comments for then BBC BASIC entry
Line 385:
Loop Until src = ""
End</
{{out}}
<pre>> 1 Vendemiaire 1 > 22 September 1792 > 1 Vendemiaire 1 > 23 September 1806 > 1 Vendemiaire 15
Line 416:
1 Vendemiaire 14 23 September 1805</pre>
=={{header|F_Sharp|F#}}==
<syntaxhighlight lang="fsharp">
// French Republican Calander: Nigel Galloway. April 16th., 2021
let firstDay=System.DateTime.Parse("22/9/1792")
type monthsFRC= Vendemiaire = 0
|Brumaire = 30
|Frimaire = 60
|Nivose = 90
|Pluviose = 120
|Ventose = 150
|Germinal = 180
|Floral = 210
|Prairial = 240
|Messidor = 270
|Thermidor = 300
|Fructidor = 330
|Virtue = 360
|Talent = 361
|Labour = 362
|Opinion = 363
|Honours = 364
|Revolution = 365
type months= January = 1
|February = 2
|March = 3
|April = 4
|May = 5
|June = 6
|July = 7
|August = 8
|September = 9
|October = 10
|November = 11
|December = 12
let frc2Greg n (g:monthsFRC) l=firstDay+System.TimeSpan.FromDays(float((l-1)*365+l/4+(int g)+n-1))
let rec fG n g=let i=match g with 3 |7 |11->366 |_->365 in if n<i then (n,g) else fG(n-i)(g+1)
let Greg2FRC n=let n,g=fG((n-firstDay).Days) 1
match n/30,n%30 with (12,n)->(1,enum<monthsFRC>(360+n),g) |(n,l)->(l+1,enum<monthsFRC>(n*30),g)
let n=(frc2Greg 1 monthsFRC.Vendemiaire 1) in printfn "%d %s %d -> %d %A %d" 1 "Vendemiaire" 1 n.Day (enum<months> n.Month) n.Year
let n=(frc2Greg 27 monthsFRC.Messidor 7) in printfn "%d %s %d -> %d %A %d" 27 "Messidor" 7 n.Day (enum<months> n.Month) n.Year
let n=(frc2Greg 1 monthsFRC.Revolution 11) in printfn "%d %s %d -> %d %A %d" 1 "Revolution" 11 n.Day (enum<months> n.Month) n.Year
let n=(frc2Greg 10 monthsFRC.Nivose 14) in printfn "%d %s %d -> %d %A %d" 10 "Nivose" 14 n.Day (enum<months> n.Month) n.Year
let n,g,l=Greg2FRC(System.DateTime(1792,9,22)) in printfn "%d %s %d -> %d %A %d" 22 "September" 1792 n g l
let n,g,l=Greg2FRC(System.DateTime(1799,7,15)) in printfn "%d %s %d -> %d %A %d" 15 "July" 1799 n g l
let n,g,l=Greg2FRC(System.DateTime(1803,9,23)) in printfn "%d %s %d -> %d %A %d" 23 "September" 1803 n g l
let n,g,l=Greg2FRC(System.DateTime(1805,12,31)) in printfn "%d %s %d -> %d %A %d" 31 "December" 1805 n g l
</syntaxhighlight>
{{out}}
<pre>
1 Vendemiaire 1 -> 22 September 1792
27 Messidor 7 -> 15 July 1799
1 Revolution 11 -> 23 September 1803
10 Nivose 14 -> 31 December 1805
22 September 1792 -> 1 Vendemiaire 1
15 July 1799 -> 27 Messidor 7
23 September 1803 -> 1 Revolution 11
31 December 1805 -> 10 Nivose 14
</pre>
=={{header|Go}}==
{{trans|BBC Basic}}
A rather literal port, just for reference. Far from idiomatic Go.
<
import (
Line 581 ⟶ 639:
func greLeap(year int) bool {
return year%4 == 0 && (year%100 != 0 || year%400 == 0)
}</
{{out}}
<pre>
Line 620 ⟶ 678:
A start anyway. Computations extracted to a package, a type defined for French Republican Dates, time package from standard library used. Ignores invalid input rather than panicking.
<
import (
Line 777 ⟶ 835:
func greLeap(year int) bool {
return year%4 == 0 && (year%100 != 0 || year%400 == 0)
}</
<
import (
Line 816 ⟶ 874:
}
}
}</
=={{header|Julia}}==
To stay within historical dates, will throw a domain error if the French Republican date is outside the interval the calendar was actually used.
<
const GC_FORMAT = DateFormat("d U y")
Line 904 ⟶ 962:
testrepublicancalendar()
</
<pre>
French Republican to Gregorian
Line 921 ⟶ 979:
=={{header|Kotlin}}==
<
import java.time.format.DateTimeFormatter
Line 1,034 ⟶ 1,092:
println("${frcDate.padEnd(25)} => $lds")
}
}</
{{out}}
Line 1,063 ⟶ 1,121:
=={{header|Nim}}==
As was done in Julia version, we have limited the date range to historical dates only.
<syntaxhighlight lang="nim">
import strformat, strscans, strutils, times
Line 1,149 ⟶ 1,207:
let day = (rdate.day - 1) + (rdate.month - 1) * 30 + (rdate.year - 1) * 365 + rdate.year div 4
result = FirstRcDate + initTimeInterval(days = day)
proc toGregorian(rdate: string): string =
Line 1,199 ⟶ 1,258:
echo "From gregorian dates to French republican dates:"
for gdate in GregorianDates:
echo &"{gdate:>24} → {gdate.toRepublican()}"</
{{out}}
Line 1,217 ⟶ 1,276:
=={{header|Perl}}==
<
use DateTime;
my @month_names = qw{
Line 1,341 ⟶ 1,400:
2016-09-22 1 Vendémiaire 225
2017-09-22 1 Vendémiaire 226
</syntaxhighlight>
{{Out}}
<pre>All tests successful.</pre>
=={{header|Phix}}==
<!--<syntaxhighlight lang="phix">(phixonline)-->
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
<span style="color: #008080;">constant</span> <span style="color: #000000;">gregorians</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #008000;">"January"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"February"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"March"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"April"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"May"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"June"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"July"</span><span style="color: #0000FF;">,</span>
<span style="color: #008000;">"August"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"September"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"October"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"November"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"December"</span><span style="color: #0000FF;">},</span>
<span style="color: #000000;">gregorian</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">31</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">28</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">31</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">30</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">31</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">30</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">31</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">31</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">30</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">31</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">30</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">31</span><span style="color: #0000FF;">},</span>
<span style="color: #000000;">republicans</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #008000;">"Vendémiaire"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"Brumaire"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"Frimaire"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"Nivôse"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"Pluviôse"</span><span style="color: #0000FF;">,</span>
<span style="color: #008000;">"Ventôse"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"Germinal"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"Floréal"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"Prairial"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"Messidor"</span><span style="color: #0000FF;">,</span>
<span style="color: #008000;">"Thermidor"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"Fructidor"</span><span style="color: #0000FF;">},</span>
<span style="color: #000000;">sansculottides</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #008000;">"Fête de la vertu"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"Fête du génie"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"Fête du travail"</span><span style="color: #0000FF;">,</span>
<span style="color: #008000;">"Fête de l'opinion"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"Fête des récompenses"</span><span style="color: #0000FF;">,</span>
<span style="color: #008000;">"Fête de la Révolution"</span><span style="color: #0000FF;">}</span>
<span style="color: #008080;">function</span> <span style="color: #000000;">rep_leap</span><span style="color: #0000FF;">(</span><span style="color: #004080;">integer</span> <span style="color: #000000;">year</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">return</span> <span style="color: #7060A8;">mod</span><span style="color: #0000FF;">(</span><span style="color: #000000;">year</span><span style="color: #0000FF;">+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">4</span><span style="color: #0000FF;">)==</span><span style="color: #000000;">0</span> <span style="color: #008080;">and</span> <span style="color: #0000FF;">(</span><span style="color: #7060A8;">mod</span><span style="color: #0000FF;">(</span><span style="color: #000000;">year</span><span style="color: #0000FF;">+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">100</span><span style="color: #0000FF;">)!=</span><span style="color: #000000;">0</span> <span style="color: #008080;">or</span> <span style="color: #7060A8;">mod</span><span style="color: #0000FF;">(</span><span style="color: #000000;">year</span><span style="color: #0000FF;">+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">400</span><span style="color: #0000FF;">)==</span><span style="color: #000000;">0</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
<span style="color: #008080;">function</span> <span style="color: #000000;">rep_to_day</span><span style="color: #0000FF;">(</span><span style="color: #004080;">sequence</span> <span style="color: #000000;">dmy</span><span style="color: #0000FF;">)</span>
<span style="color: #004080;">integer</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">d</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">m</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">y</span><span style="color: #0000FF;">}</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">dmy</span>
<span style="color: #008080;">if</span> <span style="color: #000000;">m</span> <span style="color: #0000FF;">==</span> <span style="color: #000000;">13</span> <span style="color: #008080;">then</span>
<span style="color: #000000;">m</span> <span style="color: #0000FF;">-=</span> <span style="color: #000000;">1</span>
<span style="color: #000000;">d</span> <span style="color: #0000FF;">+=</span> <span style="color: #000000;">30</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #008080;">if</span> <span style="color: #000000;">rep_leap</span><span style="color: #0000FF;">(</span><span style="color: #000000;">y</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">then</span>
<span style="color: #000000;">d</span> <span style="color: #0000FF;">-=</span> <span style="color: #000000;">1</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #004080;">integer</span> <span style="color: #000000;">res</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">365</span><span style="color: #0000FF;">*(</span><span style="color: #000000;">y</span><span style="color: #0000FF;">-</span><span style="color: #000000;">1</span><span style="color: #0000FF;">)</span> <span style="color: #0000FF;">+</span> <span style="color: #7060A8;">floor</span><span style="color: #0000FF;">((</span><span style="color: #000000;">y</span><span style="color: #0000FF;">+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">)/</span><span style="color: #000000;">4</span><span style="color: #0000FF;">)</span> <span style="color: #0000FF;">-</span> <span style="color: #7060A8;">floor</span><span style="color: #0000FF;">((</span><span style="color: #000000;">y</span><span style="color: #0000FF;">+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">)/</span><span style="color: #000000;">100</span><span style="color: #0000FF;">)</span> <span style="color: #0000FF;">+</span> <span style="color: #7060A8;">floor</span><span style="color: #0000FF;">((</span><span style="color: #000000;">y</span><span style="color: #0000FF;">+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">)/</span><span style="color: #000000;">400</span><span style="color: #0000FF;">)</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">30</span><span style="color: #0000FF;">*(</span><span style="color: #000000;">m</span><span style="color: #0000FF;">-</span><span style="color: #000000;">1</span><span style="color: #0000FF;">)</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">d</span>
<span style="color: #008080;">return</span> <span style="color: #000000;">res</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
<span style="color: #008080;">function</span> <span style="color: #000000;">gre_leap</span><span style="color: #0000FF;">(</span><span style="color: #004080;">integer</span> <span style="color: #000000;">year</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">return</span> <span style="color: #7060A8;">mod</span><span style="color: #0000FF;">(</span><span style="color: #000000;">year</span><span style="color: #0000FF;">,</span><span style="color: #000000;">4</span><span style="color: #0000FF;">)==</span><span style="color: #000000;">0</span> <span style="color: #008080;">and</span> <span style="color: #0000FF;">(</span><span style="color: #7060A8;">mod</span><span style="color: #0000FF;">(</span><span style="color: #000000;">year</span><span style="color: #0000FF;">,</span><span style="color: #000000;">100</span><span style="color: #0000FF;">)!=</span><span style="color: #000000;">0</span> <span style="color: #008080;">or</span> <span style="color: #7060A8;">mod</span><span style="color: #0000FF;">(</span><span style="color: #000000;">year</span><span style="color: #0000FF;">,</span><span style="color: #000000;">400</span><span style="color: #0000FF;">)==</span><span style="color: #000000;">0</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
<span style="color: #008080;">function</span> <span style="color: #000000;">gre_to_day</span><span style="color: #0000FF;">(</span><span style="color: #004080;">sequence</span> <span style="color: #000000;">dmy</span><span style="color: #0000FF;">)</span>
<span style="color: #004080;">integer</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">d</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">m</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">y</span><span style="color: #0000FF;">}</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">dmy</span>
<span style="color: #008080;">if</span> <span style="color: #000000;">m</span> <span style="color: #0000FF;"><</span> <span style="color: #000000;">3</span> <span style="color: #008080;">then</span>
<span style="color: #000000;">y</span> <span style="color: #0000FF;">-=</span> <span style="color: #000000;">1</span>
<span style="color: #000000;">m</span> <span style="color: #0000FF;">+=</span> <span style="color: #000000;">12</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #004080;">integer</span> <span style="color: #000000;">res</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">floor</span><span style="color: #0000FF;">(</span><span style="color: #000000;">y</span><span style="color: #0000FF;">*</span><span style="color: #000000;">365.25</span><span style="color: #0000FF;">)</span> <span style="color: #0000FF;">-</span> <span style="color: #7060A8;">floor</span><span style="color: #0000FF;">(</span><span style="color: #000000;">y</span><span style="color: #0000FF;">/</span><span style="color: #000000;">100</span><span style="color: #0000FF;">)</span> <span style="color: #0000FF;">+</span> <span style="color: #7060A8;">floor</span><span style="color: #0000FF;">(</span><span style="color: #000000;">y</span><span style="color: #0000FF;">/</span><span style="color: #000000;">400</span><span style="color: #0000FF;">)</span>
<span style="color: #0000FF;">+</span> <span style="color: #7060A8;">floor</span><span style="color: #0000FF;">(</span><span style="color: #000000;">30.6</span><span style="color: #0000FF;">*(</span><span style="color: #000000;">m</span><span style="color: #0000FF;">+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">))</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">d</span> <span style="color: #0000FF;">-</span> <span style="color: #000000;">654842</span>
<span style="color: #008080;">return</span> <span style="color: #000000;">res</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
<span style="color: #008080;">function</span> <span style="color: #000000;">day_to_rep</span><span style="color: #0000FF;">(</span><span style="color: #004080;">integer</span> <span style="color: #000000;">day</span><span style="color: #0000FF;">)</span>
<span style="color: #004080;">integer</span> <span style="color: #000000;">y</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">floor</span><span style="color: #0000FF;">((</span><span style="color: #000000;">day</span><span style="color: #0000FF;">-</span><span style="color: #000000;">1</span><span style="color: #0000FF;">)/</span><span style="color: #000000;">365.25</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">if</span> <span style="color: #008080;">not</span> <span style="color: #000000;">rep_leap</span><span style="color: #0000FF;">(</span><span style="color: #000000;">y</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">then</span>
<span style="color: #000000;">y</span> <span style="color: #0000FF;">+=</span> <span style="color: #000000;">1</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #004080;">integer</span> <span style="color: #000000;">d</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">day</span> <span style="color: #0000FF;">-</span> <span style="color: #7060A8;">floor</span><span style="color: #0000FF;">(</span><span style="color: #000000;">y</span><span style="color: #0000FF;">*</span><span style="color: #000000;">365.25</span><span style="color: #0000FF;">)</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">365</span> <span style="color: #0000FF;">+</span> <span style="color: #7060A8;">floor</span><span style="color: #0000FF;">(</span><span style="color: #000000;">y</span><span style="color: #0000FF;">/</span><span style="color: #000000;">100</span><span style="color: #0000FF;">)</span> <span style="color: #0000FF;">-</span> <span style="color: #7060A8;">floor</span><span style="color: #0000FF;">(</span><span style="color: #000000;">y</span><span style="color: #0000FF;">/</span><span style="color: #000000;">400</span><span style="color: #0000FF;">),</span>
<span style="color: #000000;">m</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">1</span><span style="color: #0000FF;">,</span>
<span style="color: #000000;">sansculottide</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">5</span><span style="color: #0000FF;">+</span><span style="color: #000000;">rep_leap</span><span style="color: #0000FF;">(</span><span style="color: #000000;">y</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">while</span> <span style="color: #000000;">d</span><span style="color: #0000FF;">></span><span style="color: #000000;">30</span> <span style="color: #008080;">do</span>
<span style="color: #000000;">d</span> <span style="color: #0000FF;">-=</span> <span style="color: #000000;">30</span>
<span style="color: #000000;">m</span> <span style="color: #0000FF;">+=</span> <span style="color: #000000;">1</span>
<span style="color: #008080;">if</span> <span style="color: #000000;">m</span> <span style="color: #0000FF;">==</span> <span style="color: #000000;">13</span> <span style="color: #008080;">then</span>
<span style="color: #008080;">if</span> <span style="color: #000000;">d</span> <span style="color: #0000FF;">></span> <span style="color: #000000;">sansculottide</span> <span style="color: #008080;">then</span>
<span style="color: #000000;">d</span> <span style="color: #0000FF;">-=</span> <span style="color: #000000;">sansculottide</span>
<span style="color: #000000;">m</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">1</span>
<span style="color: #000000;">y</span> <span style="color: #0000FF;">+=</span> <span style="color: #000000;">1</span>
<span style="color: #000000;">sansculottide</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">5</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">rep_leap</span><span style="color: #0000FF;">(</span><span style="color: #000000;">y</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">while</span>
<span style="color: #008080;">return</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">d</span><span style="color: #0000FF;">,</span><span style="color: #000000;">m</span><span style="color: #0000FF;">,</span><span style="color: #000000;">y</span><span style="color: #0000FF;">}</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
<span style="color: #008080;">function</span> <span style="color: #000000;">day_to_gre</span><span style="color: #0000FF;">(</span><span style="color: #004080;">integer</span> <span style="color: #000000;">day</span><span style="color: #0000FF;">)</span>
<span style="color: #004080;">integer</span> <span style="color: #000000;">y</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">floor</span><span style="color: #0000FF;">(</span><span style="color: #000000;">day</span><span style="color: #0000FF;">/</span><span style="color: #000000;">365.25</span><span style="color: #0000FF;">),</span>
<span style="color: #000000;">d</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">day</span> <span style="color: #0000FF;">-</span> <span style="color: #7060A8;">floor</span><span style="color: #0000FF;">(</span><span style="color: #000000;">y</span><span style="color: #0000FF;">*</span><span style="color: #000000;">365.25</span><span style="color: #0000FF;">)</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">21</span><span style="color: #0000FF;">,</span>
<span style="color: #000000;">m</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">9</span>
<span style="color: #000000;">y</span> <span style="color: #0000FF;">+=</span> <span style="color: #000000;">1792</span>
<span style="color: #000000;">d</span> <span style="color: #0000FF;">+=</span> <span style="color: #7060A8;">floor</span><span style="color: #0000FF;">(</span><span style="color: #000000;">y</span><span style="color: #0000FF;">/</span><span style="color: #000000;">100</span><span style="color: #0000FF;">)</span> <span style="color: #0000FF;">-</span> <span style="color: #7060A8;">floor</span><span style="color: #0000FF;">(</span><span style="color: #000000;">y</span><span style="color: #0000FF;">/</span><span style="color: #000000;">400</span><span style="color: #0000FF;">)</span> <span style="color: #0000FF;">-</span> <span style="color: #000000;">13</span>
<span style="color: #004080;">sequence</span> <span style="color: #000000;">gregoriam</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">deep_copy</span><span style="color: #0000FF;">(</span><span style="color: #000000;">gregorian</span><span style="color: #0000FF;">)</span> <span style="color: #000080;font-style:italic;">-- (modifiable copy)</span>
<span style="color: #008080;">while</span> <span style="color: #000000;">d</span><span style="color: #0000FF;">></span><span style="color: #000000;">gregoriam</span><span style="color: #0000FF;">[</span><span style="color: #000000;">m</span><span style="color: #0000FF;">]</span> <span style="color: #008080;">do</span>
<span style="color: #000000;">d</span> <span style="color: #0000FF;">-=</span> <span style="color: #000000;">gregoriam</span><span style="color: #0000FF;">[</span><span style="color: #000000;">m</span><span style="color: #0000FF;">]</span>
<span style="color: #000000;">m</span> <span style="color: #0000FF;">+=</span> <span style="color: #000000;">1</span>
<span style="color: #008080;">if</span> <span style="color: #000000;">m</span> <span style="color: #0000FF;">==</span> <span style="color: #000000;">13</span> <span style="color: #008080;">then</span>
<span style="color: #000000;">m</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">1</span>
<span style="color: #000000;">y</span> <span style="color: #0000FF;">+=</span> <span style="color: #000000;">1</span>
<span style="color: #000000;">gregoriam</span><span style="color: #0000FF;">[</span><span style="color: #000000;">2</span><span style="color: #0000FF;">]</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">28</span> <span style="color: #0000FF;">+</span> <span style="color: #000000;">gre_leap</span><span style="color: #0000FF;">(</span><span style="color: #000000;">y</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">while</span>
<span style="color: #008080;">return</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">d</span><span style="color: #0000FF;">,</span><span style="color: #000000;">m</span><span style="color: #0000FF;">,</span><span style="color: #000000;">y</span><span style="color: #0000FF;">}</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
<span style="color: #008080;">function</span> <span style="color: #000000;">greg_to_frep</span><span style="color: #0000FF;">(</span><span style="color: #004080;">string</span> <span style="color: #000000;">greg</span><span style="color: #0000FF;">)</span>
<span style="color: #0000FF;">{</span><span style="color: #004080;">integer</span> <span style="color: #000000;">day</span><span style="color: #0000FF;">,</span> <span style="color: #004080;">string</span> <span style="color: #000000;">months</span><span style="color: #0000FF;">,</span> <span style="color: #004080;">integer</span> <span style="color: #000000;">year</span><span style="color: #0000FF;">}</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">scanf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">greg</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"%d %s %d"</span><span style="color: #0000FF;">)[</span><span style="color: #000000;">1</span><span style="color: #0000FF;">]</span>
<span style="color: #004080;">integer</span> <span style="color: #000000;">month</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">find</span><span style="color: #0000FF;">(</span><span style="color: #000000;">months</span><span style="color: #0000FF;">,</span><span style="color: #000000;">gregorians</span><span style="color: #0000FF;">)</span>
<span style="color: #0000FF;">{</span><span style="color: #000000;">day</span><span style="color: #0000FF;">,</span><span style="color: #000000;">month</span><span style="color: #0000FF;">,</span><span style="color: #000000;">year</span><span style="color: #0000FF;">}</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">day_to_rep</span><span style="color: #0000FF;">(</span><span style="color: #000000;">gre_to_day</span><span style="color: #0000FF;">({</span><span style="color: #000000;">day</span><span style="color: #0000FF;">,</span><span style="color: #000000;">month</span><span style="color: #0000FF;">,</span><span style="color: #000000;">year</span><span style="color: #0000FF;">}))</span>
<span style="color: #004080;">string</span> <span style="color: #000000;">frep</span> <span style="color: #0000FF;">=</span> <span style="color: #008080;">iff</span><span style="color: #0000FF;">(</span><span style="color: #000000;">month</span><span style="color: #0000FF;">=</span><span style="color: #000000;">13</span><span style="color: #0000FF;">?</span><span style="color: #7060A8;">sprintf</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"%s %d"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">sansculottides</span><span style="color: #0000FF;">[</span><span style="color: #000000;">day</span><span style="color: #0000FF;">],</span> <span style="color: #000000;">year</span><span style="color: #0000FF;">})</span>
<span style="color: #0000FF;">:</span><span style="color: #7060A8;">sprintf</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"%d %s %d"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">day</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">republicans</span><span style="color: #0000FF;">[</span><span style="color: #000000;">month</span><span style="color: #0000FF;">],</span> <span style="color: #000000;">year</span><span style="color: #0000FF;">}))</span>
<span style="color: #008080;">return</span> <span style="color: #000000;">frep</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
<span style="color: #008080;">function</span> <span style="color: #000000;">frep_to_greg</span><span style="color: #0000FF;">(</span><span style="color: #004080;">string</span> <span style="color: #000000;">frep</span><span style="color: #0000FF;">)</span>
<span style="color: #004080;">integer</span> <span style="color: #000000;">day</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">month</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">year</span>
<span style="color: #004080;">string</span> <span style="color: #000000;">months</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">days</span>
<span style="color: #008080;">if</span> <span style="color: #000000;">frep</span><span style="color: #0000FF;">[</span><span style="color: #000000;">1</span><span style="color: #0000FF;">]<=</span><span style="color: #008000;">'9'</span> <span style="color: #008080;">then</span>
<span style="color: #0000FF;">{</span><span style="color: #000000;">day</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">months</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">year</span><span style="color: #0000FF;">}</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">scanf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">frep</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"%d %s %d"</span><span style="color: #0000FF;">)[</span><span style="color: #000000;">1</span><span style="color: #0000FF;">]</span>
<span style="color: #000000;">month</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">find</span><span style="color: #0000FF;">(</span><span style="color: #000000;">months</span><span style="color: #0000FF;">,</span><span style="color: #000000;">republicans</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">else</span>
<span style="color: #0000FF;">{</span><span style="color: #000000;">days</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">year</span><span style="color: #0000FF;">}</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">scanf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">frep</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"%s %d"</span><span style="color: #0000FF;">)[</span><span style="color: #000000;">1</span><span style="color: #0000FF;">]</span>
<span style="color: #000000;">day</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">find</span><span style="color: #0000FF;">(</span><span style="color: #000000;">days</span><span style="color: #0000FF;">,</span><span style="color: #000000;">sansculottides</span><span style="color: #0000FF;">)</span>
<span style="color: #000000;">month</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">13</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #0000FF;">{</span><span style="color: #000000;">day</span><span style="color: #0000FF;">,</span><span style="color: #000000;">month</span><span style="color: #0000FF;">,</span><span style="color: #000000;">year</span><span style="color: #0000FF;">}</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">day_to_gre</span><span style="color: #0000FF;">(</span><span style="color: #000000;">rep_to_day</span><span style="color: #0000FF;">({</span><span style="color: #000000;">day</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">month</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">year</span><span style="color: #0000FF;">}))</span>
<span style="color: #004080;">string</span> <span style="color: #000000;">greg</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">sprintf</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"%02d %s %d"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">day</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">gregorians</span><span style="color: #0000FF;">[</span><span style="color: #000000;">month</span><span style="color: #0000FF;">],</span> <span style="color: #000000;">year</span><span style="color: #0000FF;">})</span>
<span style="color: #008080;">return</span> <span style="color: #000000;">greg</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
<span style="color: #008080;">constant</span> <span style="color: #000000;">test_data</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"22 September 1792"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"1 Vendémiaire 1"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"20 May 1795"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"1 Prairial 3"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"15 July 1799"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"27 Messidor 7"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"23 September 1803"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"Fête de la Révolution 11"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"31 December 1805"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"10 Nivôse 14"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"18 March 1871"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"27 Ventôse 79"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"25 August 1944"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"7 Fructidor 152"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"19 September 2016"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"Fête du travail 224"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"06 May 1871"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"16 Floréal 79"</span> <span style="color: #0000FF;">},</span> <span style="color: #000080;font-style:italic;">-- Paris Commune begins</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"23 May 1871"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"3 Prairial 79"</span> <span style="color: #0000FF;">},</span> <span style="color: #000080;font-style:italic;">-- Paris Commune ends</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"09 November 1799"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"18 Brumaire 8"</span> <span style="color: #0000FF;">},</span> <span style="color: #000080;font-style:italic;">-- Revolution ends by Napoléon coup</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"02 December 1804"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"11 Frimaire 13"</span> <span style="color: #0000FF;">},</span> <span style="color: #000080;font-style:italic;">-- Republic ends by Napoléon coronation</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"30 October 1794"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"9 Brumaire 3"</span> <span style="color: #0000FF;">},</span> <span style="color: #000080;font-style:italic;">-- École Normale Supérieure established</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"27 July 1794"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"9 Thermidor 2"</span> <span style="color: #0000FF;">},</span> <span style="color: #000080;font-style:italic;">-- Robespierre falls</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"27 May 1799"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"8 Prairial 7"</span> <span style="color: #0000FF;">},</span> <span style="color: #000080;font-style:italic;">-- Fromental Halévy born</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"22 September 1792"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"1 Vendémiaire 1"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"22 September 1793"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"1 Vendémiaire 2"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"22 September 1794"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"1 Vendémiaire 3"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"23 September 1795"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"1 Vendémiaire 4"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"22 September 1796"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"1 Vendémiaire 5"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"22 September 1797"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"1 Vendémiaire 6"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"22 September 1798"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"1 Vendémiaire 7"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"23 September 1799"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"1 Vendémiaire 8"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"23 September 1800"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"1 Vendémiaire 9"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"23 September 1801"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"1 Vendémiaire 10"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"23 September 1802"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"1 Vendémiaire 11"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"24 September 1803"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"1 Vendémiaire 12"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"23 September 1804"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"1 Vendémiaire 13"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"23 September 1805"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"1 Vendémiaire 14"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"23 September 1806"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"1 Vendémiaire 15"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"24 September 1807"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"1 Vendémiaire 16"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"23 September 1808"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"1 Vendémiaire 17"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"23 September 1809"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"1 Vendémiaire 18"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"23 September 1810"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"1 Vendémiaire 19"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"24 September 1811"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"1 Vendémiaire 20"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"23 September 2015"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"1 Vendémiaire 224"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"21 September 2016"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"Fête des récompenses 224"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"22 September 2016"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"1 Vendémiaire 225"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"23 September 2016"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"2 Vendémiaire 225"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"22 September 2017"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"1 Vendémiaire 226"</span> <span style="color: #0000FF;">},</span>
<span style="color: #0000FF;">{</span> <span style="color: #008000;">"28 September 2017"</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"7 Vendémiaire 226"</span> <span style="color: #0000FF;">}</span> <span style="color: #0000FF;">}</span>
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">test_data</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">do</span>
<span style="color: #004080;">string</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">greg</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">frep</span><span style="color: #0000FF;">}</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">test_data</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">],</span>
<span style="color: #000000;">frep2</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">greg_to_frep</span><span style="color: #0000FF;">(</span><span style="color: #000000;">greg</span><span style="color: #0000FF;">),</span>
<span style="color: #000000;">greg2</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">frep_to_greg</span><span style="color: #0000FF;">(</span><span style="color: #000000;">frep</span><span style="color: #0000FF;">),</span>
<span style="color: #000000;">ok</span> <span style="color: #0000FF;">=</span> <span style="color: #008080;">iff</span><span style="color: #0000FF;">(</span><span style="color: #000000;">frep</span><span style="color: #0000FF;">=</span><span style="color: #000000;">frep2</span> <span style="color: #008080;">and</span> <span style="color: #000000;">greg</span><span style="color: #0000FF;">=</span><span style="color: #000000;">greg2</span><span style="color: #0000FF;">?</span><span style="color: #008000;">"ok"</span><span style="color: #0000FF;">:</span><span style="color: #008000;">"**** ERROR ****"</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">if</span> <span style="color: #7060A8;">platform</span><span style="color: #0000FF;">()=</span><span style="color: #004600;">WINDOWS</span> <span style="color: #008080;">then</span>
<span style="color: #000080;font-style:italic;">-- the windows console does not handle
-- non-basic-latin-ascii characters well...</span>
<span style="color: #000000;">frep</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">substitute_all</span><span style="color: #0000FF;">(</span><span style="color: #000000;">frep</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"éêéô"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"eeeo"</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"%18s <==> %-25s %s\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">greg</span><span style="color: #0000FF;">,</span><span style="color: #000000;">frep</span><span style="color: #0000FF;">,</span><span style="color: #000000;">ok</span><span style="color: #0000FF;">})</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
<span style="color: #000080;font-style:italic;">--sanity test:</span>
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #000000;">150000</span> <span style="color: #008080;">do</span> <span style="color: #000080;font-style:italic;">-- (years 1792..~2203)</span>
<span style="color: #008080;">if</span> <span style="color: #000000;">rep_to_day</span><span style="color: #0000FF;">(</span><span style="color: #000000;">day_to_rep</span><span style="color: #0000FF;">(</span><span style="color: #000000;">i</span><span style="color: #0000FF;">))!=</span><span style="color: #000000;">i</span> <span style="color: #008080;">then</span> <span style="color: #0000FF;">?</span><span style="color: #000000;">9</span><span style="color: #0000FF;">/</span><span style="color: #000000;">0</span> <span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #008080;">if</span> <span style="color: #000000;">gre_to_day</span><span style="color: #0000FF;">(</span><span style="color: #000000;">day_to_gre</span><span style="color: #0000FF;">(</span><span style="color: #000000;">i</span><span style="color: #0000FF;">))!=</span><span style="color: #000000;">i</span> <span style="color: #008080;">then</span> <span style="color: #0000FF;">?</span><span style="color: #000000;">9</span><span style="color: #0000FF;">/</span><span style="color: #000000;">0</span> <span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
<!--</syntaxhighlight>-->
{{out}}
<pre>
Line 1,565 ⟶ 1,629:
=={{header|Raku}}==
(formerly Perl 6)
<syntaxhighlight lang="raku"
constant @month_names = <
Vendémiaire Brumaire Frimaire Nivôse Pluviôse Ventôse
Line 1,679 ⟶ 1,743:
or Republican_to_Gregorian(Gregorian_to_Republican($g)) != $g;
}
say 'All tests successful.';</
{{Out}}
<pre>All tests successful.</pre>
Line 1,685 ⟶ 1,749:
=={{header|Sidef}}==
{{trans|Perl}}
<
var month_names = %w(
Line 1,832 ⟶ 1,896:
2015-09-23 1 Vendémiaire 224
2016-09-22 1 Vendémiaire 225
2017-09-22 1 Vendémiaire 226</
{{out}}
<pre>
Line 1,843 ⟶ 1,907:
{{libheader|Wren-seq}}
{{libheader|Wren-fmt}}
<
import "./seq" for Lst
import "./fmt" for Fmt
class FrenchRCDate {
Line 1,957 ⟶ 2,021:
var lds = thisDate.toLocalDate.format(fmt)
Fmt.print("$-25s => $s", frcDate, lds)
}</
{{out}}
|