From ea77707acff388d121539e5593ddbb5223de7158 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:54:06 +0000 Subject: [PATCH] better looking Zune example --- cp-demo/executing-specs/Calendar.scala | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/cp-demo/executing-specs/Calendar.scala b/cp-demo/executing-specs/Calendar.scala index 7c27f7bda..a301d7573 100644 --- a/cp-demo/executing-specs/Calendar.scala +++ b/cp-demo/executing-specs/Calendar.scala @@ -6,23 +6,13 @@ object Calendar extends App { 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 && + @spec def leapDaysUntil(y: Int) = (y - 1) / 4 - (y - 1) / 100 + (y - 1) / 400 + + val (year, day) = ((year: Int, day: Int) => + totalDays == (year - originYear) * 365 + leapDaysUntil(year) - leapDaysUntil(originYear) + 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 && - lduYear == (year - 1) / 4 - (year - 1) / 100 + (year - 1) / 400 && - lduOrigin == ((originYear - 1) / 4 - (originYear - 1) / 100 + (originYear - 1) / 400) && - day > 0 && day <= 366).solve - - (y, d) - } - println("Second version: " + yearAndDay(totalDays, originYear)) } -- GitLab