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