先顯示一下結果:
基本功能:
可以通過左右按鈕來切換年月,並同時在其下方顯示日期,並且對映相應星期數
使用語言:
純Java語言
需要了解的輔助方面:
java.awt.*;
java.awt.event.*;
javax.swing.*;
------------------------------------
下面開始界面布局:
1.先要有最頂端的布局:,我們命名為calendar_ym
2.要有星期數列的布局:,我們命名為calendar_week
3.要有日期數列的布局:,我們命名為calendar_days
4.最後要有關閉的按鈕:,我們命名為calendar_exit。
明確變量部分:
很明顯,年月一定是要變得,而年月變化,必然引起日期的變化,即calendar_ym和calendar_days是變量組
難點部分:
困難的地方是,如何精確地計算出某年某月某日是星期幾,這是一個很讓人頭疼的事情,下面給出一個公式:
星期計算公式
(年+年/4+年/400-年/100-年基數+月基數+日)/7=……余星期幾
注:式中分數均取整
年基數,平年1,閏年2,
月基數,1、平年:一月0, 二月3, 三月3, 四月6, 五月1, 六月4,
七月0, 八月3, 九月5, 十月0, 十一月3, 十二月5.
2、閏年:一月0, 二月3, 三月4, 四月0, 五月2, 六月5,
七月0, 八月3, 九月6, 十月1, 十一月4, 十二月6.
如:1949年10月1日是星期幾?
(1949+1949/4+1949/400-1949/100-1+0+1)/7
=(1949+487+4-19-1+0+1)/7
=345……6
即該日為星期六。
仔細觀察我們發現,在確定星期數的過程中要判斷該年是否為閏年,如下
判斷閏年方法
1.能被4整除,且不能被100整除
2.能被100整除,且能被400整除
滿足其中一個條件便是閏年
代碼布局:
由上面的分析得知:
1.建立一個關於日期的類,我們稱之為SDate,其方法全部為靜態方法,如下:
boolean isLeap(int year); 判斷該年是否為閏年
intfixDay(int year, int month);返回某年某月1日的星期數
int accountDays(int year,int month);返回某年某月的日期總數
2.建立日歷表的類,我們稱之為DateGrid,查看代碼
本文出自 “博遠至靜” 博客,請務必保留此出處http://sunspot.blog.51cto.com/372554/126751