• java 实现万年历


         曾经初学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- 1px 1px 1px 1px;
    	margin: 10px auto;
    	font-size: 30px;
    }
    
    
    td, th {
    	 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);
    }
    
    


  • 相关阅读:
    sql server 查看锁表SQL【转】
    Delphi 使用TAdoQuery执行存储过程的样例
    Delphi调用MSSQL存储过程返回的多个数据集的方法
    cxGrid类似pagecontrol的效果
    sqlserver trigger(触发器)-更新某几列数据时触发【转】
    FormatFloat 格式化浮点数
    TADOConnection.Close
    cxVerticalGrid
    Delphi中比较两个对象是否一致及地址是否相同[转]
    Linux学习-分析登录档
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/6709119.html
Copyright © 2020-2023  润新知