曾经初学java写万年历,都是採用主要的算法求出是否闰年闰月 计算公式例如以下

int year = 2014, month = 8, total = 0;

		if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8
|| month == 10 || month == 12) {
total = 31;
} else if (month == 2) {
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
total = 29;
} else {
total = 28;
}
} else {
total = 30;
}

total 即为当月天数

忽然认为,事实上java 有个Calendar类 这个就能够获取当月有多少天,实现日历的核心就是获取当月有多少天。

因项目须要仅仅需列出当月日历就可以,无需其它

编写代码 生成html

package Str;

import java.util.Calendar;
/**
*
*
* @project Tool
* @type Test8
* @Description
* @author xuyw
* @email xyw10000@163.com
* @date 2014-8-9 下午01:45:02
* @version 1.0
*
*/
public class Test8 { /**
* @param args
*/
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, 0);
calendar.set(Calendar.DAY_OF_MONTH, 1);// 设置为1号,当前日期既为本月第一天
int firstDay = calendar.get(Calendar.DAY_OF_WEEK) - 1;
int monthDays = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);// 当月最后一天 StringBuilder sbd = new StringBuilder();
sbd.append("<table cellspacing='0' style='background: url(./img/body.png);'>");
sbd.append("<thead><tr>");
sbd
.append("<th>星期天</th><th>星期一</th><th>星期二</th><th>星期三</th><th>星期四</th><th>星期五</th><th>星期六</th>");
sbd.append("</tr></thead>");
sbd.append("<tbody><tr>");
// 第一行
int weekend = 0;// 每周的最后一天的日期
for (int i = 0; i < 7; i++) {
if (i < firstDay) {
sbd.append("<td></td>");
} else {
sbd.append("<td>" + (i - firstDay + 1) + "</td>");
}
weekend = i - firstDay + 1;
}
sbd.append("</tr>");
while (weekend < monthDays) {
sbd.append("<tr>"); for (int i = 0; i < 7; i++) {
if (weekend + i < monthDays)// 数字小于等于当前月的最后一天
{
sbd.append("<td>" + (i + weekend + 1) + "</td>");
} else {
sbd.append("<td></td>");
} }
sbd.append("</tr>");
weekend += 7;// 周末再加7天
} sbd.append("<tbody></table>");
System.out.println(sbd.toString());
}
}

先前測试就用控制台生成html标签   将生成的html标签在页面展示就可以 效果图例如以下

css

* {
/* old-style reset here :) */
border: 0px;
padding: 0px;
}
body {
font-family: Helvetica;
background: white;
text-align: center;
/* background: url(../img/body.png) repeat-x; */}
body h1 {
padding-top: 20px;
font-size: 36px;
color: #335;
}
p{font-size:26px;}
table {
border-collapse: separate;
border: 1px solid #9DABCE;
border-width: 1px 1px 1px 1px;
margin: 10px auto;
font-size: 30px;
} td, th {
width: 81px;
height: 81px;
text-align: center;
vertical-align: middle;
/*background: url(../img/cells.png);*/
color: #444;
position: relative;
}
th {
height: 30px;
font-weight: bold;
font-size: 14px;
} td.sign_in {
background-position: 81px 0px;
color: red;
} td.sign_no{
background: url(../img/cells.png);
}

最新文章

  1. struts2学习笔记--使用struts2插件实现ajax处理(返回json数据)
  2. ABP Migration(数据库迁移)
  3. zabbix之Nginx安装
  4. netty websocket协议开发
  5. 比较Activiti中三种不同的表单及其应用
  6. 对tomcat来说,每一个进来的请求(request)都需要一个线程,直到该请求结束。
  7. jquery判断浏览器版本插件,jquery-browser.js
  8. PHPexcel数据按模板导出
  9. &lt;a&gt;标签中 href=&quot;/&quot; 和 hideFocus=&quot;true&quot;
  10. hdu 4710 Balls Rearrangement 数论
  11. CakePHP下使用paginator需要对多个字段排序的做法
  12. .net 面试题
  13. 如何在IIS上发布网站
  14. 软件测试_Fiddler抓包工具二
  15. css 表单标签两端对齐
  16. saltstack常用命令
  17. 使用svn钩子遇到的坑
  18. 使用Spring Cloud Security OAuth2搭建授权服务
  19. OpenCV245之SURF源代码分析
  20. 比特股-去中心化交易所, STEEM - 去中心化社区, EOS - 下一代智能合约

热门文章

  1. jQuery的deferred对象使用笔记
  2. mysql数据库查询优化
  3. android 时间控件概述
  4. React Native for Android 热部署图片自己定义方案
  5. wepy - 与原生有什么不同(request)
  6. 微信小程序 - 调用腾讯地图插件
  7. 在eclipse中使用github进行代码的上传操作以及如何建立分支
  8. javascript---对象和函数的引用、浅拷贝、深拷贝、递归
  9. Tomcat启动时选择加载项目
  10. 在OpenERP8.0中如何激活及时通讯功能im