Relieved .NET DateTime was sufficient for this.
let problem19a = let mutable cur = new System.DateTime(1901, 1, 1); let last = new System.DateTime(2000, 12, 31); let mutable count = 0 while(cur <= last) do if cur.Day = 1 && cur.DayOfWeek = System.DayOfWeek.Sunday then count <- count + 1 cur <- cur.AddDays(1.0) count
And here’s a functional version.
let problem19b = let last = System.DateTime(2000, 12, 31) let rec sundays cur count = if cur > last then count elif cur.Day = 1 && cur.DayOfWeek = System.DayOfWeek.Sunday then sundays (cur.AddDays(1.0)) (count+1) else sundays (cur.AddDays(1.0)) count sundays (System.DateTime(1901, 1, 1)) 0
No comments:
Post a Comment