From 6199a72285325f30733874cefa76f6e758bf8f62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ali=20Sinan=20K=C3=B6ksal?= <alisinan@gmail.com> Date: Thu, 28 Jul 2011 21:35:03 +0000 Subject: [PATCH] calendar example with Scala 2.9 --- cp-demo/executing-specs/Calendar.scala | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/cp-demo/executing-specs/Calendar.scala b/cp-demo/executing-specs/Calendar.scala index 857021e81..061123bba 100644 --- a/cp-demo/executing-specs/Calendar.scala +++ b/cp-demo/executing-specs/Calendar.scala @@ -1,9 +1,18 @@ import cp.Definitions._ import cp.Terms._ -object Calendar extends Application { +object Calendar extends App { - /* maybe more readable with leapDaysUntil's + final val totalDays = 10593 + final val originYear = 1980 + + val (year, day) = ((year : Int, day : Int) => totalDays == (year - originYear) * 365 + (year - 1) / 4 - (year - 1) / 100 + (year - 1) / 400 - + ((originYear - 1) / 4 - (originYear - 1) / 100 + (originYear - 1) / 400) + day && + day > 0 && day <= 366).solve + + println("Year : %d, day : %d" format (year, day)) + + /* alternate version with intermediate "leapDaysUntil" variables def yearAndDay(totalDays : Int, originYear : Int) : (Int, Int) = { val (y, d, _, _) = ((year : Int, day : Int, lduYear : Int, lduOrigin : Int) => totalDays == (year - originYear) * 365 + lduYear - lduOrigin + day && @@ -13,17 +22,7 @@ object Calendar extends Application { (y, d) } - - println(yearAndDay(10593, 1980)) */ - final val totalDays = 10593 - final val originYear = 1980 - - val (year, day) = ((year : Int, day : Int) => totalDays == (year - originYear) * 365 + (year - 1) / 4 - (year - 1) / 100 + (year - 1) / 400 - - ((originYear - 1) / 4 - (originYear - 1) / 100 + (originYear - 1) / 400) + day && - day > 0 && day <= 366).solve - - println("Year : %d, day : %d" format (year, day)) } -- GitLab