实现一可调节月份日历
来源:互联网 发布:酷享网络 编辑:程序博客网 时间:2024/04/30 04:43
思路主要是根据Calendar类中的各属性方法,来实现一个有条件的数字循环,用到或有用的方法:
实例一个日历:c = Calendar.getInstance()
取得年份:c.get(Calendar.YEAR)
取得月份:c.get(Calendar.MONTH) (从Calendar中取得的mouth是从 0 开始!)
取得号数:c.get(Calendar.DAY_OF_MONTH)
设置号数:c.set(Calendar.DAY_OF_MONTH, xx)
取得号数的星期:c.get(Calendar.DAY_OF_WEEK) (从Calendar中取出的星期是从Sunday开始,所以为 1 时即为 Sunday !)
增加天数:c.add(Calendar.DAY_OF_MONTH, xx) (xx为需要增加的天数,可以为负,为负则为减少,add为自动调节,比如现在是4月30号,那 +1 后,c 为 5 月 1 号 而不是4月31号;月份的增加也相同 )
思路主要是:建一个表格用以显示,因为某月中最多的周数为 6 ,一周的天数为 7 ,所以表格为 row 6 * column 7;然后就要把相应的数字填充到表格中,那么主要的就是要找到表格的第一个数字是什么,那后面的直接循环即可,首先设置默认日历的号数为 1 ,可得到这个月 1 号是 星期几 ,那么就可得到 它 前面有多少天,在它的基础上减去这个天数,就是表第一行第一列应该显示的数字了,那么循环下去,这个简单的显示本月的日历就做好了;如果要在表中只显示本月的天数的数字,那么再构造一个默认的Calendar类,因为上面操作的 Calendar 类是在不断的变化的,所以 根据两个 Calendar 类的月份进行比较,月份相同的在表中显示,这样就行了。如果还要添加一些其他的特效等,比如星期六,星期天的号数不同颜色显示,参考 DefaultTableCellRenderer 类。 日历代码如下:
/** * @author Loved_wy */public class GetTableData {Calendar c = null;Calendar c1 = null;public GetTableData() {}public Object[][] getTableData(int year, int mouth) {c = Calendar.getInstance();c1 = Calendar.getInstance();if(mouth != 0 && year != 0){c.set(Calendar.MONTH, mouth - 1);c.set(Calendar.YEAR, year);c1.set(Calendar.MONTH, mouth - 1);c1.set(Calendar.YEAR, year);}c.set(Calendar.DAY_OF_MONTH, 1);int firstDayWeek = c.get(Calendar.DAY_OF_WEEK);Object[][] object = new Object[6][7];c.add(Calendar.DAY_OF_MONTH, -(firstDayWeek - 1));for (int x = 0; x < 6; x++) {for (int y = 0; y < 7; y++) {int m = c1.get(Calendar.MONTH);if(c.get(Calendar.MONTH) == m){object[x][y] = c.get(Calendar.DAY_OF_MONTH);}c.add(Calendar.DAY_OF_MONTH, 1);}}return object;}}
上面的代码中的方法传入的参数是用于调节年月,只要传入相应的参数即可达到日历变动的目的。-- by loved_wy
效果图如下:
- 实现一可调节月份日历
- 实现一可调节月份日历
- java 实现打印当前月份的日历
- 当前月份日历
- ext 选择月份日历
- VB实现可调节难度的九宫格拼图
- oracle的周、月份、日历
- oracle的周、月份、日历
- 根据年份月份获取日历
- 显示指定月份的日历
- 输出当前月份的日历
- 一句sql实现本月日历 & 本年日历
- Shell实现从键盘输入年份和月份,显示该年、月的日历
- 可完全定制的Javascript日历 (Callback 实现)
- jQuery插件FullCalendar日程表实现可扩展Google日历功能
- jQuery插件FullCalendar日程表实现可扩展Google日历功能
- jQuery插件FullCalendar日程表实现可扩展Google日历功能
- jQuery插件FullCalendar日程表实现可扩展Google日历功能
- XStream解析和读取xml报文
- fork和vfork的区别
- STM32学习笔记(2):外部中断的使用
- sizeof 用法 取得数组的元素个数
- 使用UltraEdit实现从UNIX文件到DOS文件的批量转换
- 实现一可调节月份日历
- jbpm图形化监控
- 【费用流】Kaka's Matrix Travels
- mac上使用qt,进行输入法的开发
- CXF A class/interface with the same name 问题
- php数组练习之----查询数组中某key 的键值相同的个数、数组的格式转换、合并数组
- 如何减小与“大牛”的差距
- js弹出页面回传值问题
- 使用UIActivityIndicatorView