年間カレンダー
Posted feedbacks - Scala
せっかく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)
|



186
#4884()
Rating4/4=1.00
nを入力としてn年の年間カレンダーを返すプログラムを作ってください 少なくとも日曜日と土曜日が判別出来るようにしてください 出力は標準出力でもファイルでも構いません デザインは各自のお好みで 出力例1: (y-calendar 2008)=> #=Saturday, @=Sunday 2008/1 1 2 3 4 #5 @6 7 ... 2008/2 1 #2 @3 4 5 6 7 ... ... 2008/12 1 2 3 4 5 #6 @7 ... 出力例2: (y-calendar 2008)=> M T W T F S S M 2008/ 1 1 2 3 4 5 6 7 ... 2008/ 2 1 2 3 4 ... ... 2008/12 1 2 3 4 5 6 7 8 ... 出力例3: (y-calendar 2008)は2008.htmlを出力する 2008.htmlの中身 ---- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>2008 calendar</title> <style type="text/css"> * {font-family: monospace;} span {margin: 0px 3px;} span.sunday {color:red;font-weight:bold;} span.saturday {color:blue;font-weight:bold;} dd ul li{display:inline;} </style> </head> <body> <h1>2008 calendar</h1> <dl> <dt>2008/1</dt> <dd><ul> <li><span class="weekday">1</span></li> <li><span class="weekday">2</span></li> <li><span class="weekday">3</span></li> <li><span class="weekday">4</span></li> <li><span class="saturday">5</span></li> <li><span class="sunday">6</span></li> ... </ul></dd> ... </dl> </body> </html> ----[ reply ]