yuin #5060(2007/12/30 06:48 GMT) [ Scala ] Rating4/4=1.00
せっかくJAVAのクラスを使っているので多言語対応で。 JAPAN ================================= 2007/1 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 US ================================= 2007/1 Sun Mon Tue Wed Thu Fri Sat 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 CHINA ================================= 2007/1 星期日 星期一 星期二 星期三 星期四 星期五 星期六 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
import java.text.{DateFormatSymbols, SimpleDateFormat} import java.util.{Date, Locale} object YearCalendar { import java.util.Calendar._ def mkString(n:int, s:String) = List.make(n, s).mkString def print(year:int):unit = print(year, Locale.getDefault) def print(year:int, locale:Locale):unit = { val ws = (new DateFormatSymbols(locale)).getShortWeekdays mkString " " val format = (new SimpleDateFormat("dd", locale)).format _:Date => String val wwidth = ws.split(" ")(1).getBytes.size val cal = getInstance(locale) (0 to 11).foreach { month => println(year+"/"+(month+1)+"\n"+ws) var n = {cal.set(year,month,1); cal}.get(DAY_OF_WEEK) Console.print(mkString((n-1)*(wwidth+2), " ")) do { Console.print(mkString(wwidth, " ")+format(cal.getTime).replaceFirst("^0", " ")) if(n == 7){ println(""); n = 0 } }while({n = n +1;cal.add(DATE, 1);cal.get(MONTH) == month}) println("\n") } } } YearCalendar print 2007 YearCalendar.print(2007, Locale.US) YearCalendar.print(2007, Locale.CHINA)
Rating4/4=1.00-0+
[ reply ]
yuin
#5060()
[
Scala
]
Rating4/4=1.00
せっかくJAVAのクラスを使っているので多言語対応で。 JAPAN ================================= 2007/1 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 US ================================= 2007/1 Sun Mon Tue Wed Thu Fri Sat 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 CHINA ================================= 2007/1 星期日 星期一 星期二 星期三 星期四 星期五 星期六 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31import java.text.{DateFormatSymbols, SimpleDateFormat} import java.util.{Date, Locale} object YearCalendar { import java.util.Calendar._ def mkString(n:int, s:String) = List.make(n, s).mkString def print(year:int):unit = print(year, Locale.getDefault) def print(year:int, locale:Locale):unit = { val ws = (new DateFormatSymbols(locale)).getShortWeekdays mkString " " val format = (new SimpleDateFormat("dd", locale)).format _:Date => String val wwidth = ws.split(" ")(1).getBytes.size val cal = getInstance(locale) (0 to 11).foreach { month => println(year+"/"+(month+1)+"\n"+ws) var n = {cal.set(year,month,1); cal}.get(DAY_OF_WEEK) Console.print(mkString((n-1)*(wwidth+2), " ")) do { Console.print(mkString(wwidth, " ")+format(cal.getTime).replaceFirst("^0", " ")) if(n == 7){ println(""); n = 0 } }while({n = n +1;cal.add(DATE, 1);cal.get(MONTH) == month}) println("\n") } } } YearCalendar print 2007 YearCalendar.print(2007, Locale.US) YearCalendar.print(2007, Locale.CHINA)Rating4/4=1.00-0+
[ reply ]