Groovy Groundhogs, revisited - No Fluff Just Stuff

Groovy Groundhogs, revisited

Posted by: Kenneth Kousen on February 2, 2014

For those people in the U.S. who are concerned that this morning Punxsutawney Phil, the Seer of Seers, Prognosticator of Prognosticators, emerged, reluctantly, but alertly, and stated in groundhog-ese, “I definitely see a shadow”, let me allay your fears using Groovy:

Calendar cal = Calendar.instance

cal.set(year:2014, month:Calendar.FEBRUARY, date:2)
def groundhogDay = cal.time

cal.set(year:2014, month:Calendar.MARCH, date:20)
def firstDayOfSpring = cal.time

int days = firstDayOfSpring - groundhogDay
println """There are $days days between Groundhog Day and the first Day of Spring.
That's ${(int) (days/7)} weeks and ${days % 7} days.
"""

The result of that script is:

There are 46 days between Groundhog Day and the first Day of Spring.
That's 6 weeks and 4 days.

In other words, “six more weeks of winter” is a good thing, because otherwise we’d have to wait an extra four days.

A few notes are in order:

  • Here is the official Groundhog Day site.
  • According to the Wikipedia page, Phil has been predicting the weather since 1887. His accuracy rate is only about 39%, however.
  • Some kind of Groundhog Day celebration has been recorded since as far back as 1841. It bears similarities to the pagan festival of Imbolc, among others.
  • If you don’t like using the Calendar class (and who does?), the Groovy JDK also adds a parse method directly to java.util.Date:
    Date groundhogDay = Date.parse('MM/dd/yyyy', '02/02/2014')
    Date firstDayOfSpring = Date.parse('MM/dd/yyyy', '03/20/2014')
    

    and the rest is the same.

  • The Vernal Equinox this year occurs on March 20, 2014, at 1:57pm EDT.
  • I considered posting this blog entry over and over as some sort of weak tribute to the movie, but at least I spared you that. :)

There’s more, but I have to go get ready for our Super Bowl party, where the announcers have been talking about the weather all week and will no doubt be disappointed that the temperature will be in the 40s (Fahrenheit).


Kenneth Kousen

About Kenneth Kousen

Ken Kousen is a Java Champion, several time JavaOne Rock Star, and a Grails Rock Star. He is the author of the Pragmatic Library books “Mockito Made Clear” and “Help Your Boss Help You,” the O'Reilly books “Kotlin Cookbook”, “Modern Java Recipes”, and “Gradle Recipes for Android”, and the Manning book “Making Java Groovy”. He also has recorded over a dozen video courses for the O'Reilly Learning Platform, covering topics related to Android, Spring, Java, Groovy, Grails, and Gradle.

His academic background include BS degrees in Mechanical Engineering and Mathematics from M.I.T., an MA and Ph.D. in Aerospace Engineering from Princeton, and an MS in Computer Science from R.P.I. He is currently President of Kousen IT, Inc., based in Connecticut.

Why Attend the NFJS Tour?

  • » Cutting-Edge Technologies
  • » Agile Practices
  • » Peer Exchange

Current Topics:

  • Languages on the JVM: Scala, Groovy, Clojure
  • Enterprise Java
  • Core Java, Java 8
  • Agility
  • Testing: Geb, Spock, Easyb
  • REST
  • NoSQL: MongoDB, Cassandra
  • Hadoop
  • Spring 4
  • Cloud
  • Automation Tools: Gradle, Git, Jenkins, Sonar
  • HTML5, CSS3, AngularJS, jQuery, Usability
  • Mobile Apps - iPhone and Android
  • More...
Learn More »