用JAVA写一个日历计划
效果图(自己需要在前台加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写一个日历计划的更多相关文章
- 使用JAVA写一个简单的日历
JAVA写一个简单的日历import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateF ...
- 用JAVA写一个函数,功能例如以下: 随意给定一组数, 找出随意数相加之后的结果为35(随意设定)的情况
用JAVA写一个函数.功能例如以下:随意给定一组数,比如{12,60,-8,99,15,35,17,18},找出随意数相加之后的结果为35(随意设定)的情况. 能够递归算法来解: package te ...
- 五:用JAVA写一个阿里云VPC Open API调用程序
用JAVA写一个阿里云VPC Open API调用程序 摘要:用JAVA拼出来Open API的URL 引言 VPC提供了丰富的API接口,让网络工程是可以通过API调用的方式管理网络资源.用程序和软 ...
- 用java写一个servlet,可以将放在tomcat项目根目录下的文件进行下载
用java写一个servlet,可以将放在tomcat项目根目录下的文件进行下载,将一个完整的项目进行展示,主要有以下几个部分: 1.servlet部分 Export 2.工具类:TxtFileU ...
- 用JAVA写一个多线程程序,写四个线程,其中二个对一个变量加1,另外二个对一个变量减1
package com.ljn.base; /** * @author lijinnan * @date:2013-9-12 上午9:55:32 */ public class IncDecThrea ...
- java 写一个"HelloJavaWorld你好世界"输出到操作系统文件Hello.txt文件中
package com.beiwo.homework; import java.io.File; import java.io.FileOutputStream; import java.io.IOE ...
- Java写一个简单学生管理系统
其实作为一名Java的程序猿,无论你是初学也好,大神也罢,学生管理系统一直都是一个非常好的例子,初学者主要是用数组.List等等来写出一个简易的学生管理系统,二.牛逼一点的大神则用数据库+swing来 ...
- 用java写一个用户登陆界面
一.课堂测试源代码及其结果截图 用java的swing写一个用户登录界面,采用网格布局.源代码如下: /** * */package LiuLijia; import java.awt.CardLay ...
- 《用Java写一个通用的服务器程序》01 综述
最近一两年用C++写了好几个基于TCP通信类型程序,都是写一个小型的服务器,监听请求,解析自定义的协议,处理请求,返回结果.每次写新程序时都把老代码拿来,修改一下协议解析部分和业务处理部分,然后就一个 ...
随机推荐
- Android SDK Manager 中如果没有相应的镜像ARM XX Image
Android SDK Manager 中如果没有相应的镜像ARM XX Image 处理做法是:先更新 相应版本Android SDK Tools 然后出现 ARM XX Image
- java中的负数的问题
在计算机中是使用二制数中的最高位表示来正负. 二进制的储存中都是用的补码,正数的原码.反码和补码相同,负数的原码是最高位为1,反码最高位不变,其余各位取反,补码为其反码+1(重要!!) 首先得知道最高 ...
- 【微信Java开发 --1】内网穿透外网,使用外网域名可以访问到本地项目
1.首先上https://natapp.cn/ 2.接下来在网站申请账号 3.购买免费隧道 4.为你的免费隧道设置名称以及端口号,由于本人本地的使用Tomcat做服务器,所以用惯了8080端口,因此设 ...
- SSH无密码登录配置小结
ssh-keygen -t rsa //-t指定算法 将公钥复制到被管理机器上面 ssh-copy-id -i ~/.ssh/id_rsa.pub 172.29.0.89 ssh-copy-id -i ...
- java的重载、覆盖和隐藏的区别
重载:方法名相同,但参数不同的多个同名函数 注意:1.参数不同的意思是参数类型.参数个数.参数顺序至少有一个不同 2.返回值和异常以及访问修饰符,不能作为重载的条件(因为对于匿名调用,会出现歧义,eg ...
- Eclipse如何替换android应用图标
打开你的项目 我们看到项目里有 res这个文件夹里有以下文件夹. drawable-hdpi -------高分辨率 drawable-ldpi -------中分辨率 drawab ...
- CSS3-margin,padding,border
margin padding border: 1.当属性值为0的时候,不需要在后面添加单位 2.当同时出现top margin以及bottom magin的时候,浏览器应用较大的哪一个 3.不能在 ...
- 后缀数组 UVA 11107 Life Forms
题目链接 题意:训练指南P223 分析:二分长度,把所有字符串连成一个字符串,中间用不同的字符分隔(这是为了保证匹配长度始终在一个字符串内).height数组分段,vis数组标记哪些字符串被访问了,如 ...
- 锐捷 Linux登录命令
cd /home/ficow/桌面/rjsupplicant&&sudo chmod +x ./rjsupplicant.sh&&sudo chmod +x ./rjs ...
- 获取DLL中的方法名称
OpenFileDialog obj = new OpenFileDialog(); if (obj.ShowDialog() == System.Windows.Forms.DialogResu ...