該萬年歷設計的類如下:
主類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 |
