恵方を算出するScalaライブラリ
もう誰得よ?って感じですが作りました。
恵方って、4パターンしか無いんですね。
// http://ja.wikipedia.org/wiki/恵方#.E6.81.B5.E6.96.B9 object 恵方{ import java.util.{Date,Calendar} def 今年の恵方 = この年の恵方は_?( Calendar.getInstance ) def この年の恵方は_? ( 年:Calendar ):恵方 = 年.get( Calendar.YEAR ) % 5 match { case 0 => 恵方("庚の方","申と酉の中間","255°","西微南やや左","西南西やや右") case 1 => 恵方("丙の方","巳と午の中間","165°","南微東やや左","南南東やや右") case 2 => 恵方("壬の方","亥と子の中間","345°","北微西やや左","北北西やや右") case 3 => 恵方("丙の方","巳と午の中間","165°","南微東やや左","南南東やや右") case 4 => 恵方("甲の方","寅と卯の中間","75°","東微北やや左","東北東やや右") } def この年の恵方は_? ( 年:Date ):恵方 = { val カレンダー = Calendar.getInstance カレンダー.setTime( 年 ) この年の恵方は_? ( カレンダー ) } case class 恵方(正確に:String, 十二支:String, 方位角:String, 方位32:String, 方位16:String ) }
実行結果:
scala> 恵方.今年の恵方 res0: 恵方.恵方 = 恵方(庚の方,申と酉の中間,255°,西微南やや左,西南西やや右) scala> import java.util.Calendar import java.util.Calendar scala> val c = Calendar.getInstance c: java.util.Calendar = java.util.GregorianCalendar[time=1265340075314,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Tokyo",offset=32400000,dstSavings=0,useDaylight=false,transitions=10,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2010,MONTH=1,WEEK_OF_YEAR=6,WEEK_OF_MONTH=1,DAY_OF_MONTH=5,DAY_OF_YEAR=36,DAY_OF_WEEK=... scala> c.add( Calendar.YEAR , 1 ) scala> 恵方.この年の恵方は_?( c ) res2: 恵方.恵方 = 恵方(丙の方,巳と午の中間,165°,南微東やや左,南南東やや右)
来年の恵方は、「南南東やや右」ですよ!!