效果图(自己需要在前台加css修饰)

代码部门

public class monthUtils
{
    static int[] _days = new int[]
    { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

private Date td;

/**
     * 构造函数,必填
     *
     * @param year
     * @param month
     */
    public monthUtils(String year, String month)
    {
        this.td = this.initMonth(year, month);
    }

/**
     * 根据年份和月初始化
     *
     * @param year
     * @param month
     * @return
     */
    Date initMonth(String year, String month)
    {
        return DateKit.str2Date(year + "-" + month + "-01");
    }

/**
     * 获取月份的日期数
     *
     * @return
     */
    public int getDAYS()
    {
        Calendar cal = Calendar.getInstance();

cal.setTime(td);
        int days = _days[cal.get(Calendar.MONTH)];
        int year = cal.get(Calendar.YEAR);
        if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
        {
            days = 29;
        }
        return days;
    }

/**
     * 获取星期几,第一天为星期日
     *
     * @return
     */
    int getFirst()
    {
        Calendar cal = Calendar.getInstance();
        cal.setTime(td);
        return cal.get(Calendar.DAY_OF_WEEK);
    }

/**
     * 获取日期的数组集
     *
     * @return
     */
    public String[] getDAYOfARR()
    {
        String[] arr = new String[42];
        int days = getDAYS();
        int firstDate = getFirst();
        for (int n = 0; n < 42; n++)
        {
            int d = n - firstDate + 2;
            if (n > firstDate - 2 && d <= days)
            {
                arr[n] = String.valueOf(d);
            }
            else
            {
                arr[n] = "";
            }
        }

return arr;
    }

/**
     * 获取yyyy-mm-dd日期格式数组
     *
     * @return
     */
    public String[] getYMD()
    {
        Calendar cal = Calendar.getInstance();
        cal.setTime(td);
        String[] arr = new String[42];
        int days = getDAYS();
        int firstDate = getFirst();
        for (int n = 0; n < 42; n++)
        {
            int d = n - firstDate + 2;
            if (n > firstDate - 2 && d <= days)
            {
                cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), d);
                arr[n] = DateKit.date2Str(cal.getTime());
            }
            else
            {
                arr[n] = "";
            }
        }
        return arr;
    }

/**
     * 生成表格()
     *
     * @param css
     * @return
     */
    public String getTable(String css)
    {
        StringBuffer sb = new StringBuffer();
        sb.append("<table class=\"" + css + "\">");
        sb.append("<tr>");
        sb.append("<td>");
        sb.append("星期日");
        sb.append("</td>");
        sb.append("<td>");
        sb.append("星期一");
        sb.append("</td>");
        sb.append("<td>");
        sb.append("星期二");
        sb.append("</td>");
        sb.append("<td>");
        sb.append("星期三");
        sb.append("</td>");
        sb.append("<td>");
        sb.append("星期四");
        sb.append("</td>");
        sb.append("<td>");
        sb.append("星期五");
        sb.append("</td>");
        sb.append("<td>");
        sb.append("星期六");
        sb.append("</td>");
        sb.append("</tr>");

String[] data = this.getYMD();
        sb.append("<tr>");
        int n = 1;
        for (String str : data)
        {
            if (StringUtils.isEmpty(str) && n == 36)
            {

break;
            }
            sb.append("<td id=\"d" + str + "\" style=\"font-size:4px;\">");
            sb.append(str);//每天想要显示的信息就在添加
            sb.append("</td>");

if (n % 7 == 0)
            {
                sb.append("</tr><tr>");
            }
            n++;
        }
        sb.append("</tr>");
        sb.append("</table>");
        return sb.toString();
    }

}

// Controller(这里用的是jfinal框架)后台调用后返回到页面就形成一个日历表格

public void getTable(){
        Member _member = getSessionAttr(consts.tmcSessionKey);

  //包不同的月份从前台传过来就好了
        String year=getPara("year");
        String month=getPara("month");
        monthUtils monthUtils=new monthUtils(year,month);
        String table=monthUtils.getTable(list);
        renderText(table);
    }

推荐一款很好看,也很实用的js日历控件

http://sentsin.com/layui/laydate/

用JAVA写一个日历计划的更多相关文章

  1. 使用JAVA写一个简单的日历

    JAVA写一个简单的日历import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateF ...

  2. 用JAVA写一个函数,功能例如以下: 随意给定一组数, 找出随意数相加之后的结果为35(随意设定)的情况

    用JAVA写一个函数.功能例如以下:随意给定一组数,比如{12,60,-8,99,15,35,17,18},找出随意数相加之后的结果为35(随意设定)的情况. 能够递归算法来解: package te ...

  3. 五:用JAVA写一个阿里云VPC Open API调用程序

    用JAVA写一个阿里云VPC Open API调用程序 摘要:用JAVA拼出来Open API的URL 引言 VPC提供了丰富的API接口,让网络工程是可以通过API调用的方式管理网络资源.用程序和软 ...

  4. 用java写一个servlet,可以将放在tomcat项目根目录下的文件进行下载

    用java写一个servlet,可以将放在tomcat项目根目录下的文件进行下载,将一个完整的项目进行展示,主要有以下几个部分: 1.servlet部分   Export 2.工具类:TxtFileU ...

  5. 用JAVA写一个多线程程序,写四个线程,其中二个对一个变量加1,另外二个对一个变量减1

    package com.ljn.base; /** * @author lijinnan * @date:2013-9-12 上午9:55:32 */ public class IncDecThrea ...

  6. java 写一个"HelloJavaWorld你好世界"输出到操作系统文件Hello.txt文件中

    package com.beiwo.homework; import java.io.File; import java.io.FileOutputStream; import java.io.IOE ...

  7. Java写一个简单学生管理系统

    其实作为一名Java的程序猿,无论你是初学也好,大神也罢,学生管理系统一直都是一个非常好的例子,初学者主要是用数组.List等等来写出一个简易的学生管理系统,二.牛逼一点的大神则用数据库+swing来 ...

  8. 用java写一个用户登陆界面

    一.课堂测试源代码及其结果截图 用java的swing写一个用户登录界面,采用网格布局.源代码如下: /** * */package LiuLijia; import java.awt.CardLay ...

  9. 《用Java写一个通用的服务器程序》01 综述

    最近一两年用C++写了好几个基于TCP通信类型程序,都是写一个小型的服务器,监听请求,解析自定义的协议,处理请求,返回结果.每次写新程序时都把老代码拿来,修改一下协议解析部分和业务处理部分,然后就一个 ...

随机推荐

  1. C# 获取wave文件信息【转】

    public class WaveHelper { /// <summary> /// 数据流 /// </summary> private Stream m_WaveData ...

  2. 【项目经验】之——Controller向View传值

    我们的ITOO进行了一大部分了,整体上来说还是比较顺利的.昨天进行了一次验收,大体上来说,我们新生这块还是可以的.不仅仅进行了学术上的交流,还进行了需求上的更新.也正是由于这一次,我有了解到了一个新的 ...

  3. 如何hash一条有向边

    之前这个问题还困扰了我好久,但是现在我才明白这个很蠢的问题 那就是(3,7)(4,9)(3,3)这种有向序点对(括号可能用的不对) 我们可以变成对"(3,7)"字符串的hash,当 ...

  4. ZOOKEEPER3.3.3源码分析(四)对LEADER选举过程分析的纠正

    很抱歉,之前分析的zookeeper leader选举算法有误,特此更正说明. 那里面最大的错误在于,leader选举其实不是在大多数节点通过就能选举上的,这一点与传统的paxos算法不同,因为如果这 ...

  5. 【java IO File】统计项目代码总共多少行

    统计项目代码总共有多少行 思想: 1.首先将不需要迭代的文件夹,保存在集合中,不满足的就是需要迭代的文件夹 2.将需要进行统计行数的代码文件保存在集合中,满足的就是需要计算文件行数的文件 3.迭代方法 ...

  6. HDU 4162 Shape Number (最小表示法)

    题意:给你一串n个数,求出循环来看一阶差的最小字典序:数字串看成一个顺时针的环,从某一点开始顺时针循环整个环,保证字典序最小就是答案 例如给你 2 1 3 就会得到(1-2+8 注意题意负数需要加8) ...

  7. POJ 2750 Potted Flower (线段树区间合并)

    开始懵逼找不到解法,看了网上大牛们的题解才发现是区间合并...  给你n个数形成一个数列环,然后每次进行一个点的修改,并输出这个数列的最大区间和(注意是环,并且区间最大只有n-1个数) 其实只需要维护 ...

  8. linux服务器init 5启动图形界面,报错Retrigger failed udev events

    今天因工作需要开启linux系统的桌面环境,使用startx未成功,报如下错误: [root@ /]# startx xauth: creating new authority xinit: No s ...

  9. 运用Python成为黑客

    1.Fuzz测试: 漏洞挖掘有三种方法:白盒代码审计.灰盒逆向工程.黑盒测试.其中黑盒的Fuzz测试是效率最高的一种,能够快速验证大量潜在的安全威胁. Fuzz测试,也叫做"模糊测试&quo ...

  10. Ajax实现点击省份显示相应城市

    功能:不用级联效果,自己写ajax,从接口读取省份城市数据,实现点击省份显示相应城市.后端根据省份ID,给前端返回城市. 一.DOM结构(套用blade模板) <div class=" ...