【小项目】用Java写一个日历小程序-思路
2009-05-02 11:02
381 查看
先显示一下结果:
![](http://img1.51cto.com/attachment/200901/200901161232087900187.jpg)
基本功能:
可以通过左右按钮来切换年月,并同时在其下方显示日期,并且对映相应星期数
使用语言:
纯Java语言
需要了解的辅助方面:
java.awt.*;
java.awt.event.*;
javax.swing.*;
------------------------------------
下面开始界面布局:
1.先要有最顶端的布局:
![](http://img1.51cto.com/attachment/200901/200901161232102239531.jpg)
,我们命名为calendar_ym
2.要有星期数列的布局:
![](http://img1.51cto.com/attachment/200901/200901161232102292531.jpg)
,我们命名为calendar_week
3.要有日期数列的布局:
![](http://img1.51cto.com/attachment/200901/200901161232102340656.jpg)
,我们命名为calendar_days
4.最后要有关闭的按钮:
![](http://img1.51cto.com/attachment/200901/200901161232102411453.jpg)
,我们命名为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,查看代码
![](http://img1.51cto.com/attachment/200901/200901161232087900187.jpg)
基本功能:
可以通过左右按钮来切换年月,并同时在其下方显示日期,并且对映相应星期数
使用语言:
纯Java语言
需要了解的辅助方面:
java.awt.*;
java.awt.event.*;
javax.swing.*;
------------------------------------
下面开始界面布局:
1.先要有最顶端的布局:
![](http://img1.51cto.com/attachment/200901/200901161232102239531.jpg)
,我们命名为calendar_ym
2.要有星期数列的布局:
![](http://img1.51cto.com/attachment/200901/200901161232102292531.jpg)
,我们命名为calendar_week
3.要有日期数列的布局:
![](http://img1.51cto.com/attachment/200901/200901161232102340656.jpg)
,我们命名为calendar_days
4.最后要有关闭的按钮:
![](http://img1.51cto.com/attachment/200901/200901161232102411453.jpg)
,我们命名为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,查看代码
相关文章推荐
- 2013级Java第1周(春)项目——一个简单的考勤签到程序
- Java 实训1:编写一个窗体程序显示日历表。
- Java 程序只运行一个进程--思路
- java程序中没有错,但是项目上面显示一个红叉的解决办法
- 2013级Java第1周(春)项目——一个简单的考勤签到程序
- 用JAVA写的一个每月的日历程序,效果看正文。
- 用Java Swing作一个日历控制程序
- java程序中没有错,但是项目上面显示一个红叉的解决办法
- java程序中没有错,但是项目上面显示一个红叉的解决办法
- 用Java Swing作一个日历控制程序-Java基础-Java-编程开发
- 2013级Java第1周(春)项目——一个简单的考勤签到程序
- 2013级Java第1周(春)项目——一个简单的考勤签到程序
- java项目程序中没有错,但是项目上面显示一个红叉的解决办法
- java程序中没有错,但是项目上面显示一个红叉的解决办法
- java程序中没有错,但是项目上面显示一个红叉的解决办法
- 2013级Java第1周(春)项目——一个简单的考勤签到程序
- java程序设计一个日历,不用封装的类的程序
- java 程序题 递归算法 判断一个整数化成二进制之后有多少个1 (两种思路)
- 下一天(Java swing写的一个日历小程序)
- Java 实训4 编写一个窗体程序显示日历