冬至を求める
日本テレビで緊急警告!!2012年人類破滅!?ノストラダムス最後の大予言SPなんてのをやっていた。
2012/12/21に終わるんだと。
その日は冬至ですね。
今日も冬至。
高度な文明も天文学の計算もできないので、
groovyを使って冬至の日を求める。
でも、マヤ文明に負けてるや・・・
求め方はwikipediaの冬至から
ソース
def winterSolstice(year){ mod = year % 4 switch (mod){ case 0: if (1900 <= year && year <= 1988) { println "${year}/12/22" } else if (1992 <= year && year <=2096) { println "${year}/12/21" } else { println "unkown" } break; case 1: if (1901 <= year && year <= 2025) { println "${year}/12/22" } else if (2029 <= year && year <=2097) { println "${year}/12/21" } else { println "unkown" } break; case 2: if (1902 <= year && year <= 1918) { println "${year}/12/23" } else if (1922 <= year && year <= 2058) { println "${year}/12/22" } else if (2062 <= year && year <= 2098) { println "${year}/12/21" } else { println "unkown" } break; case 3: if (1903 <= year && year <= 1955) { println "${year}/12/23" } else if (1959 <= year && year <= 2095) { println "${year}/12/22" } else if ( year == 2099 ) { println "${year}/12/21" } else { println "unkown" } break; default: println "unkown" } } winterSolstice(2001) winterSolstice(2002) winterSolstice(2003) winterSolstice(2004) winterSolstice(2005) winterSolstice(2006) winterSolstice(2007) winterSolstice(2008) winterSolstice(2009) winterSolstice(2010) winterSolstice(2011) winterSolstice(2012) winterSolstice(1918) winterSolstice(1922) winterSolstice(1955) winterSolstice(1986) winterSolstice(1996) winterSolstice(2033) winterSolstice(2066) winterSolstice(2099)
実行結果
groovy winterSolstice.groovy 2001/12/22 2002/12/22 2003/12/22 2004/12/21 2005/12/22 2006/12/22 2007/12/22 2008/12/21 2009/12/22 2010/12/22 2011/12/22 2012/12/21 1918/12/23 1922/12/22 1955/12/23 1986/12/22 1996/12/21 2033/12/21 2066/12/21 2099/12/21