ONLY DO WHAT ONLY YOU CAN DO

こけたら立ちなはれ 立ったら歩きなはれ

Scala で Project Euler Problem 19

scala> def weekday(year:Int, month:Int, d:Int) = {
     |     var y = year
     |     var m = month
     |     if (m == 1 || m == 2) {
     |         y -= 1
     |         m += 12
     |     }
     |     (y + y / 4 - y / 100 + y / 400 + (13 * m + 8) / 5 + d) % 7
     | }
weekday: (year: Int, month: Int, d: Int)Int
scala> weekday(2013, 2, 1)
res0: Int = 5
scala> var i = 0
i: Int = 0

scala> for (y <- 1901 to 2000; m <- 1 to 12) {
     |     if (weekday(y, m, 1) == 0) i += 1
     | }

scala> i
res2: Int = 171