該萬年歷設計的類如下:
主類MillionYear:設計了該萬年歷的圖形界面,用JPanel類創建了一個比較簡單的布局。其中用兩個JComboBox組件形成了年和月的下拉列表,可以顯示從1800年到2100年的所有日期;用JTable組件把日期按照平常的月歷顯示出來。
類Solar:該類處理了公歷。在其中判斷了這一年是否是閏年,月份的天數,指定月份的一號對應的星期等。
類Lunar:處理農歷的類。該類能把對應日期的陰歷顯示出來。
類Clock:顯示了系統的時間。該類調用線程取得系統時間並顯示。
對應的UML類圖:
類MillionYear
MillionYear |
- solar:Solar - selectedYear:int - selectedMonth:int - daysOfMonth:int -weekOfFirstDay:int - lunar:Lunar - top:JPanel - jcb1:JComboBox - jcb2:JComboBox - table:JTable |
-showNew():void +update(g:Graphics):void +itemStateChanged(e:ItemEvent):void +main(args:String[] ):void |
類Sorlar
Sorlar |
#todayYear:int #todayMonth:int #todayDay:int #todayWeek:int |
#getDaysOfMonth(year:int,month:int):int #getWeekOfFirstDay(year:int,month:int ):int -prt(k:int):void |
類Lunar
Lunar |
-temp_total_day:int -gc_solar_calendar_year:int - gc_solar_calendar_month:int - gc_solar_calendar_dateint: - gc_lunar_calendar_year:int gc_lunar_calendar_month:int gc_lunar_calendar_date:int - start_day_of_week:int |
+get_solar_day_date():void +calendar_calculate_lunar_month_total_day():int +get_lunar_day():void |
類Clock
Clock |
-serialVersionUID:final long= 3660124045489727166L my:MillionYear t:Thread time:String |
+Clock(my:MillionYear) +run():void +paint(g:Graphics ):void |