【小项目】用Java写一个日历小程序-思路

来源:互联网 发布:linux服务器不能连外网 编辑:程序博客网 时间:2024/05/18 02:55
先显示一下结果:
鏃ュ巻灏忕▼搴忕粨鏋滄樉绀?by
基本功能:
    可以通过左右按钮来切换年月,并同时在其下方显示日期,并且对映相应星期数
使用语言:
    纯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); 判断该年是否为闰年
  • int fixDay(int year, int month);返回某年某月1日的星期数
  • int accountDays(int year,int month);返回某年某月的日期总数
2.建立日历表的类,我们称之为DateGrid,查看代码