设计 一个 oa 当中 的日历显示 跳转 上月 下月

简介:   主要就是利用 java的Calendar 类     传入一个 参数 如yyyyMMdd 20101201 这样的参数   然后找到 月 的第一天 和 月的最后一天 进行循环。   将循环放到 星期数组里面 传到页面。   private String currentDay; private String currentMonth; pri

 

主要就是利用 java的Calendar 类

 

 

传入一个 参数 如yyyyMMdd 20101201 这样的参数

 

然后找到 月 的第一天 和 月的最后一天 进行循环。

 

将循环放到 星期数组里面 传到页面。

 

	
        private String currentDay;
	private String currentMonth;
	private List<String[]> weeksOfMonth;

	/**
	 * 分页.查询.排序.
	 */
	public String listSchedule() throws Exception {
		Calendar now = Calendar.getInstance();
		if (currentDay != null) {
			try {
				now.setTime(new SimpleDateFormat("yyyyMMdd")
						.parse(currentDay));
			} catch (Exception e) {

			}
		}
		Calendar dateFirst = Calendar.getInstance();
		dateFirst.set(Calendar.YEAR, now.get(Calendar.YEAR));
		dateFirst.set(Calendar.MONTH, now.get(Calendar.MONTH));
		dateFirst.set(Calendar.DATE, 1);
		//将当前天和当前月设置值
		currentDay = new SimpleDateFormat("yyyyMMdd").format(now.getTime());
		currentMonth = new SimpleDateFormat("yyyyMM").format(now.getTime());

		List<String> daysOfMonth = new ArrayList<String>();// 变量放日期
		weeksOfMonth = new ArrayList<String[]>();// 转换成的星期
		for (int i = 1; i < ((dateFirst.get(Calendar.DAY_OF_WEEK)+5)%7); i++) {// 添加1号前面的空格
			daysOfMonth.add("");
		}
		for (int i = 1; i <= now.getActualMaximum(Calendar.DATE); i++) {
			//now.getActualMaximum(Calendar.DATE)获得当月天数
			daysOfMonth.add(i + "");// 添加月下面的日期
		}
		for (int i = daysOfMonth.size(); i < 6 * 7; i++) {
			daysOfMonth.add("");// 添加月末后面的空格
		}
		for (int j = 0; j < daysOfMonth.size(); j = j + 7) {// 将数组转换成星期放到list里面
			String[] week = new String[7];
			int index = 0;
			week[index] = daysOfMonth.get(j + index++);// 星期一
			week[index] = daysOfMonth.get(j + index++);// 星期二
			week[index] = daysOfMonth.get(j + index++);// 星期三
			week[index] = daysOfMonth.get(j + index++);// 星期四
			week[index] = daysOfMonth.get(j + index++);// 星期五
			week[index] = daysOfMonth.get(j + index++);// 星期六
			week[index] = daysOfMonth.get(j + index++);// 星期日
			weeksOfMonth.add(week);
		}
		return SUCCESS;
	}

 这里有个问题

 

(dateFirst.get(Calendar.DAY_OF_WEEK)+5)%7)

 

本来 用

DAY_OF_WEEK

就可以获得星期,可是星期是从 周日开始的。想从周一开始就得 向后挪 5

 

在页面显示

 

<s:iterator value="weeksOfMonth" status="status" id="week">
		<fs:gridPanelDataTable4Date index="${status.index}">
			<fs:gridPanelDataColumn4Date width="6" height="40">&nbsp;</fs:gridPanelDataColumn4Date>
			<s:iterator begin="0" end="6" step="1" id="index"><!-- 进行星期的7天循环 -->
				<s:if test="${index} == 5 || ${index} == 6"><!-- 判断是否是周六,周日换背景为黄色 -->
					<fs:gridPanelDataColumn4Date width="100" height="40" style="background-color: #ffffcc;">
						<span class="scheduleDateWeekendDiv"><s:property value="${week[index]}"/></span>
						<s:if test="${week[index]} != ''">
						<a href="javaScript:showScheduleViewDiv('${currentMonth}<s:if test="${week[index]} < 10 ">0${week[index]}</s:if><s:else>${week[index]}</s:else>');">编辑</a>
						<a href="${ctx}/addUserInfo.action?id=<s:property value="id"/>">查看</a>
						</s:if>
					</fs:gridPanelDataColumn4Date>
				</s:if>
				<s:else>
					<fs:gridPanelDataColumn4Date width="100" height="40">
						<span class="scheduleDateWeekendDiv"><s:property value="${week[index]}"/></span>
						<s:if test="${week[index]} != ''">
						<a href="javaScript:showScheduleViewDiv('${currentMonth}<s:if test="${week[index]} < 10 ">0${week[index]}</s:if><s:else>${week[index]}</s:else>');">编辑</a>
						<a href="${ctx}/addUserInfo.action?id=<s:property value="id"/>">查看</a>
						</s:if>
					</fs:gridPanelDataColumn4Date>
				</s:else>
			</s:iterator>
		</fs:gridPanelDataTable4Date>
	</s:iterator>

 

其中用到了一些自己封装的 标签。

 

效果图:


 

上月 下月的 action

/**
	 * 上一月
	 */
	public String prevMonthSchedule() throws Exception {
		Calendar now = Calendar.getInstance();
		if (currentDay != null) {
			try {
				now.setTime(new SimpleDateFormat("yyyyMMdd")
						.parse(currentDay));
			} catch (Exception e) {

			}
		}
		now.set(Calendar.MONTH, now.get(Calendar.MONTH) - 1);
		currentDay = new SimpleDateFormat("yyyyMMdd").format(now.getTime());
		System.out.println("currentDay:" + currentDay);
		return SUCCESS;
	}

	/**
	 * 下一月
	 */
	public String nextMonthSchedule() throws Exception {
		Calendar now = Calendar.getInstance();
		if (currentDay != null) {
			try {
				now.setTime(new SimpleDateFormat("yyyyMMdd")
						.parse(currentDay));
			} catch (Exception e) {

			}
		}
		now.set(Calendar.MONTH, now.get(Calendar.MONTH) + 1);
		currentDay = new SimpleDateFormat("yyyyMMdd").format(now.getTime());
		System.out.println("currentDay:" + currentDay);
		return SUCCESS;
	}

 

 

源代码 和 oa 放到一起了

demo:

http://freeweboa.appspot.com/index.html

里面的日程管理

下载地址:

 

http://code.google.com/p/freewebsys/downloads/list

 

目录
相关文章
免费企业级OA办公系统,助力高效办公
拥有一套高效的免费OA办公自动化系统对于企业和机构来说至关重要。然而,对于许多中小型企业而言,购买一套全面的OA系统的成本又比较高。今天,我们为大家带来真正完全免费的点晴OA,让它成为您企业高效办公的得力助手!
41 10
一款功能全面且免费的OA办公系统,下载即用
点晴免费OA办公系统是一款完全免费,不限使用时间,不限用户数,功能全面的免费OA办公系统,下载安装即用,使用点晴OA办公系统可以简单快速地建立办公自动化系统。
49 5
|
2月前
|
点晴OA系统为企业的发展注入新的活力
点晴OA办公系统是真正完全免费的协同OA系统软件商,而且是不限使用时间,不限用户数,不限功能模块的免费OA办公系统,为企业全面实现行政办公一体化,深受众多企业的青睐。
31 5
点晴免费OA办公系统:高效协同,安全易用
信息技术发展推动企业信息化,即企业利用现代技术提升生产、经营、管理效率,增强竞争力。点晴免费OA系统作为信息化管理的基础,是实现企业信息化的关键手段。
46 2
点晴OA办公系统让企业变得高效协同
随着企业信息化进程的加快,很多企业开始寻求使用企业管理免费OA办公系统来提高工作效率。然而,有些些企业可能缺乏信息化经验,对技术一无所知,甚至从未接触过OA办公系统。在这种情况下,企业需要寻求功能比较全面的OA办公系统,以满足企业的实际需求。
57 1
哪些OA任务管理系统值得推荐?4款高效办公工具介绍
在现代企业中,OA(办公自动化)任务管理系统是提升工作效率和团队协作的关键工具。本文介绍了4款备受推崇的OA任务管理系统:板栗看板、Trello、Asana和Monday.com,分别从提高工作效率、增强团队协作、优化资源分配和提升工作质量等方面进行了详细说明,为用户提供全面的参考和选择指南。
如何明智选择免费OA系统的关键因素
在数字化办公日益普及的今天,选择一款合适的免费OA系统对于企业提升工作效率和管理水平至关重要。不管是办公的便捷方便,还是与其他平台的融合,免费OA系统的选择,需要看这几点,易用性、开放性、稳定性、服务性、实用性、安全性。
34 0
点晴OA系统让考勤管理不再头疼
在当今数字化管理趋势下,点晴OA办公系统中的考勤管理作为企业内部管理的重要组成部分,其自动化和智能化水平的提高在提高企业运营效率和员工满意度方面发挥着重要作用。
65 4
某OA系统需要提供一个假条审批的模块,如果员工请假天数小于3天,主任可以审批该请假条;如果员工请假天数大于等于3天,小于10天,经理可以审批;如果员工请假天数大于等于10天,小于30天,总经理可以审批
该博客文章通过一个OA系统中的请假审批模块示例,使用Java语言实现了职责链模式,展示了如何根据不同的请假天数由不同级别的领导进行审批,并讨论了职责链模式的优缺点。
某OA系统需要提供一个假条审批的模块,如果员工请假天数小于3天,主任可以审批该请假条;如果员工请假天数大于等于3天,小于10天,经理可以审批;如果员工请假天数大于等于10天,小于30天,总经理可以审批
免费OA办公系统的实力派:点晴OA
点晴OA办公系统是一款面向中小企业的办公自动化解决方案,旨在提高工作效率和优化管理流程。它通过提供多维度的功能模块结构、高度的定制化能力、友好的用户界面以及安全可靠的数据保护机制,满足企业日常办公的多样化需求。以下是关于点晴OA办公系统的详细介绍:
112 0