`

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

    博客分类:
  • java
阅读更多

 

主要就是利用 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

 

  • 大小: 63.6 KB
0
0
分享到:
评论

相关推荐

    华天动力OA工作流之图形化流程设计和条件跳转实例

    工作流是OA系统的核心,它将企业的办公流程进行规范和简化,以实现高效率网上协同办公的目的,以至于很多人说工作流的设计水平代表了OA系统的设计水平。通过华天动力OA系统提供的网上试用版本,我们来直观的了解一些...

    OA工作流之图形化流程设计和条件跳转实例.pdf

    图形化流程设计和条件跳转是现代OA系统中的两项核心功能,对于提升系统的灵活性和易用性至关重要。 一、图形化流程设计 图形化流程设计是OA系统中直观展示和编辑工作流程的一种方法。通过这种方式,用户可以清晰地...

    OA系统中流程审批数据库的设计.pdf

    一个高效且灵活的OA系统,其核心在于流程审批数据库的设计。本文将深入探讨如何设计这样一个数据库,以满足企业日常业务流程的需求。 首先,流程审批数据库的核心在于流程实例表的设计。此表应包含每个流程实例的...

    免费OA工作流流程设计时条件跳转设置四步骤简介.doc

    总结来说,点晴OA的条件跳转功能为企业提供了灵活且可控的审批流程设计,通过四个步骤的设置,可以根据实际情况自动匹配合适的审批路径,提高审批效率,降低运营风险。正确地运用这一功能,能为企业带来显著的管理...

    毕业设计之OA系统C#版

    “毕业设计之OA系统C#版”是一个综合性的项目,涉及了C#编程、.NET框架的运用、OA系统的核心功能实现以及毕业设计的完整流程。通过这个项目,开发者不仅可以锻炼编程技能,还能了解到企业级应用的开发流程,对提升...

    oa界面设计,供参考

    OA(Office Automation,办公自动化)系统是现代...一个优秀的OA界面设计,能有效提升企业的办公效率,推动组织的数字化转型。在实际设计过程中,应结合公司业务特点和员工需求,打造出个性化、高效且易用的OA界面。

    北大青鸟毕业OA设计源码

    这款源码是北大青鸟学员毕业设计的成果,旨在提供一个全面、实用的OA系统解决方案,适用于中小企业或组织内部的信息管理和协同工作。 ASP.NET是由微软公司开发的一种服务器端Web应用程序框架,它简化了Web应用的...

    OA详细设计说明书.doc

    OA 系统详细设计说明书 OA 系统详细设计说明书是指导开发员进行编码的文档,旨在明确说明协同办公系统各功能的实现方式。本文档将对 OA 系统的详细设计进行全面的介绍,从总体设计到系统模块的设计,对于开发员和...

    用Django写的一个简单的OA办公系统源码.zip

    用Django写的一个简单的OA办公系统源码 用Django写的一个简单的OA办公系统源码 用Django写的一个简单的OA办公系统源码 用Django写的一个简单的OA办公系统源码 用Django写的一个简单的OA办公系统源码 用...

    OA系统详细设计

    OA系统详细设计

    oa系统毕业设计

    在"李强的"这个压缩包文件中,可能包含了上述部分或全部技术的代码示例、设计文档或教程资源,对进行OA系统毕业设计的学生来说是一份宝贵的参考资料。通过深入学习和实践,学生可以掌握上述知识点,并完成一个功能...

    java毕业设计——基于ssm-vue的oa系统设计与实现.zip

    java毕业设计——基于ssm-vue的oa系统设计与实现.zip java毕业设计——基于ssm-vue的oa系统设计与实现.zip java毕业设计——基于ssm-vue的oa系统设计与实现.zip java毕业设计——基于ssm-vue的oa系统设计与实现.zip ...

    OA系统后台psd设计-超赞!

    ”这个主题中,我们将深入探讨OA系统后台设计的关键知识点以及如何通过高质量的PSD文件实现这一目标。 首先,OA系统后台设计需注重用户体验(UX)和用户界面(UI)。UX设计关注用户与系统的交互过程,旨在提供直观...

    一套完整的OA系统源码可自己设计审批流程

    【标题】:“一套完整的OA系统源码可自己设计审批流程” 涵盖了OA(Office Automation)系统的开发核心,提供了源代码,使得用户能够根据自身需求定制审批流程。 【描述】:描述中提到这套源码是作者在51aspx购买后...

    oa.rar_OA 源码_OA源码_文档管理系统_毕业设计 OA_毕业设计文档

    在这个“oa.rar_OA 源码_OA源码_文档管理系统_毕业设计 OA_毕业设计文档”中,包含的是一份完整的OA系统毕业设计项目,它不仅提供了源代码,还包含相关的文档和数据库,对于学习和理解OA系统的运作机制极具价值。...

    最新的、详细的OA设计文档

    总之,这个最新的OA设计文档集成了关键的设计要素,包括概要设计的系统架构和模块划分,用例图的用户交互描述,以及需求分析的详细说明,旨在构建一个高效、易用且满足企业需求的OA系统。通过对这些文档的深入学习和...

    OA毕业设计答辩PPT

    总的来说,这个OA毕业设计答辩PPT展示了如何构建一个个人办公模块,涵盖了从需求分析到数据库设计,再到类建模和功能实现的全过程。通过这个系统,用户能够有效地管理任务,安排日程,以及与同事进行信息交流,体现...

    OA系统原型

    OA系统原型设计的目标是创建一个用户友好、操作简便的界面,让使用者能够在系统中快速找到所需功能并完成任务。设计时需考虑以下关键知识点: 1. **需求分析**:首先,原型设计前必须对用户需求进行深入理解和分析...

Global site tag (gtag.js) - Google Analytics