- 浏览: 275154 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
qq642617822:
有用,谢谢了。
eclipse 导入jquery后报错 -
nbh219:
电脑配置问题?
MyEclipse+tomcat debug启动非常之慢 -
bngd032:
如此做了,还是不行的,我的myeclipse里没有断点 ...
MyEclipse+tomcat debug启动非常之慢 -
x9x9x9x9:
很管用呀
eclipse 导入jquery后报错
//package com.date.utlit;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
/**
* 计算任意2个日期内的工作日(没有考虑到国定假日)
*/
public class DateCal{
/**
* @param args
*/
public static void main(String[] args) {
try {
String strDateStart = "2006-10-1";
String strDateEnd = "2006-10-14";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date_start = sdf.parse(strDateStart);
Date date_end = sdf.parse(strDateEnd);
Calendar cal_start = Calendar.getInstance();
Calendar cal_end = Calendar.getInstance();
cal_start.setTime(date_start);
cal_end.setTime(date_end);
DateCal app = new DateCal();
System.out.println("星期-->" + app.getChineseWeek(cal_start)
+ " 日期-->" + cal_start.get(Calendar.YEAR) + "-"
+ (cal_start.get(Calendar.MONTH) + 1) + "-"
+ cal_start.get(Calendar.DAY_OF_MONTH));
System.out.println("星期-->" + app.getChineseWeek(cal_end) + " 日期-->"
+ cal_end.get(Calendar.YEAR) + "-"
+ (cal_end.get(Calendar.MONTH) + 1) + "-"
+ cal_end.get(Calendar.DAY_OF_MONTH));
System.out.println("工作日为-->"
+ app.getWorkingDay(cal_start, cal_end));
System.out.println("休息日-->"+app.getHolidays(cal_start, cal_end));
} catch (Exception e) {
// TODO: handle exception
}
}
public int getDaysBetween(java.util.Calendar d1, java.util.Calendar d2) {
if (d1.after(d2)) { // swap dates so that d1 is start and d2 is end
java.util.Calendar swap = d1;
d1 = d2;
d2 = swap;
}
int days = d2.get(java.util.Calendar.DAY_OF_YEAR)- d1.get(java.util.Calendar.DAY_OF_YEAR);
int y2 = d2.get(java.util.Calendar.YEAR);
if (d1.get(java.util.Calendar.YEAR) != y2) {
d1 = (java.util.Calendar) d1.clone(); //////为什么要用到clone///////
do {
days += d1.getActualMaximum(java.util.Calendar.DAY_OF_YEAR);
d1.add(java.util.Calendar.YEAR, 1);
} while (d1.get(java.util.Calendar.YEAR) != y2);
}
return days;
}
/**
* 计算2个日期之间的相隔天数
* @param d1
* @param d2
* @return
*/
public int getWorkingDay(java.util.Calendar d1, java.util.Calendar d2) {
int result = -1;
if (d1.after(d2)) { // swap dates so that d1 is start and d2 is end
java.util.Calendar swap = d1;
d1 = d2;
d2 = swap;
}
int betweendays = getDaysBetween(d1, d2);
int charge_date = 0;
int charge_start_date = 0;//开始日期的日期偏移量
int charge_end_date = 0;//结束日期的日期偏移量
// 日期不在同一个日期内
int stmp;
int etmp;
stmp = 7 - d1.get(Calendar.DAY_OF_WEEK);
etmp = 7 - d2.get(Calendar.DAY_OF_WEEK);
if (stmp != 0 && stmp != 6) {// 开始日期为星期六和星期日时偏移量为0
charge_start_date = stmp - 1;
}
if (etmp != 0 && etmp != 6) {// 结束日期为星期六和星期日时偏移量为0
charge_end_date = etmp - 1;
}
result = (getDaysBetween(this.getNextMonday(d1), this.getNextMonday(d2)) / 7)
* 5 + charge_start_date - charge_end_date; //注意算法
//System.out.println("charge_start_date>" + charge_start_date);
//System.out.println("charge_end_date>" + charge_end_date);
//System.out.println("between day is-->" + betweendays);
return result;
}
public String getChineseWeek(Calendar date) {
final String dayNames[] = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五",
"星期六" };
int dayOfWeek = date.get(Calendar.DAY_OF_WEEK);
// System.out.println(dayNames[dayOfWeek - 1]);
return dayNames[dayOfWeek - 1];
}
/**
* 获得日期的下一个星期一的日期
*
* @param date
* @return
*/
public Calendar getNextMonday(Calendar date) {
Calendar result = null;
result = date;
do {
result = (Calendar) result.clone(); //可能是在while中需要保持值的不变clone
result.add(Calendar.DATE, 1);
} while (result.get(Calendar.DAY_OF_WEEK) != 2);
return result;
}
/**
*
* @param d1
* @param d2
* @return
*/
public int getHolidays(Calendar d1,Calendar d2){
return this.getDaysBetween(d1, d2)-this.getWorkingDay(d1, d2);
}
}
发表评论
-
maven 安装jar包命令
2017-03-11 10:43 877mvn install:install-file -Dfile ... -
aspose word 单元格加斜杠
2017-03-10 17:14 1371Document doc = new Document(); ... -
beans profile
2017-03-01 17:05 527http://www.cnblogs.com/pangguom ... -
一个action操作两个service,其中一个报错,如何保证事务的一致性?
2016-05-17 14:14 1748你可以把这两个操作写在一个Service中,一般一个Actio ... -
web service 事物
2016-05-17 11:31 551转载:http://www.griddss.cn/show.a ... -
java 为什么只能单继承
2016-05-12 14:33 817从技术的角度来说,是为了降低复杂性。例如,A类中有一个m方法, ... -
java 递归
2015-12-23 16:13 556//菜单树形结构 public JSONArray tre ... -
bootstrap 验证是否通过
2015-11-27 17:57 739alert($('#formname').data('boot ... -
springMvc分页
2015-11-10 17:26 783@Override public Pagination&l ... -
jdbc 连接mysql
2015-10-13 13:45 596import java.sql.Connection; i ... -
java 定时任务
2015-07-31 19:54 601import java.util.TimerTask; ... -
java 判断为空
2015-07-31 18:44 656list.add(obj.getRegion()==null? ... -
js json里加数据
2015-03-21 09:28 552//记录答案 prop 属性,答案 function co ... -
查询多表返回一个list
2015-03-18 10:29 1083public List<?> getCourse ... -
判断多个参数
2015-03-12 17:09 508/** * @param obj 判断传入参数是否为空,如 ... -
xml 路径
2014-10-30 17:44 723三、如何获取XML文件全路径并读取配置参数 获取XML ... -
json嵌套 解析
2014-08-11 10:44 676JSONArray group = jsonObj.get ... -
java 读取txt和解析json
2014-08-06 16:20 1822File file = new File("e:\ ... -
读取properties配置文件里边的属性方法
2014-07-10 18:40 1092/** * */ package com.xcj ... -
求最大值和百分比
2014-07-09 19:20 750int[] num={4,3,1,7}; int ma ...
相关推荐
对于任意2个日期比如:date_start=2006-10-1、date_end=2006-10-14 ,首先计算这连个日期之间的时间间隔(天数),然后分别对date_start 和date_end 取得它们下一个星期一的日期,这样就可以得到一个新的可以整除7的...
### 计算两个日期之间的工作日天数(C#实现) 在日常工作中,我们经常会遇到需要计算两个日期...通过以上步骤,我们可以有效地使用C#语言来计算任意两个日期之间的工作日数量,这对于各种业务场景都具有很高的实用价值。
matlab版计算任意两个日期相隔的天数,函数原型为function how_many_days = days(year1,month1,day1,year2,month2,day2)。
Java中计算任意两个日期之间的工作天数.java 工具类
在Java中,要计算一个月内有多少个工作日(通常指周一至周五),以及具体哪些日子是工作日,可以通过多种方法实现。这里将介绍一种较为通用的方法:利用`java.util.Calendar`类来计算指定月份内的工作日。 #### 一...
本项目是一个使用ASP.NET+C#编写的源码,其主要功能是计算两个日期之间的总天数以及工作日的天数。这个功能在很多实际场景下都有应用,例如财务管理、人力资源规划或项目进度管理。 首先,让我们深入理解ASP.NET...
输入任意日期(年月日),根据Zeller公式,利用matlab来计算是星期几
自己写的计算任意给出的两个日期的天数 C语言代码 可参考下
"指定两个日期计算相隔的天数"这一功能通常涉及日期函数的使用,这些函数能够帮助我们快速地得出两个日期间的差距,即天数。这里我们将详细探讨如何实现这一功能,以及相关的编程语言和工具。 1. **通用方法**: ...
2. **时间戳转换**:`mktime()`函数将`struct tm`结构体转换为从1970年1月1日00:00:00 UTC到当前时间的秒数,即时间戳。例如: ```c time_t timestamp = mktime(&date); ``` 3. **日期运算**:有了时间戳,我们...
java实现输入任意两个日期输出月份数和天数,综合考虑闰年、2月等因素,对于整月计算利息或按天数计算利息提供基础工具类。也可以吧内部类独立出来,方便跨包调用,可自行调整。很实用的一个实现。其他百度查到的很...
个人在进行C语言复习期间编写的一个进行日期计算的程序(算法优化),主要功能有:选择菜单,两个日期求间隔,按天数往后计算日期,按天数往前计算日期,功能循环。主要用了函数,指针,结构体等知识
MATLAB程序计算两个日期之间的总天数
这个特定的项目,"根据任意输入的日期,得出星期几",是一个实用的小程序,它能够帮助用户查询任何给定日期是星期几。这个功能在日常生活中非常有用,比如在规划日程或者回忆过去特定日期的事件时。 VB提供了丰富的...
目的在于测试,但是对于初学者,也可以获得一些小的经验,事实上用vc提供的CTime函数的只用范围是1970年1月1日到2038年1月18日,再往后的日期就不能自动得到星期了,这个程序可以得到1812年到2012年任意一天的星期,...
计算任意两年之间的间隔天数的java代码,可以自己输入任意的年月日。
1、对于任意三个整数,判断其是否为一个合法的日期值。 2、给定一个日期值,计算若干天后的日期值。 3、如果有两个日期值,计算它们相距的天数。
3. **获得任意日期天数.cmd**:这个脚本可能用于获取从某个特定日期(如用户输入的日期)到当前日期的天数。它可能需要用到日期的比较和计算,这可能涉及到`set /a`命令进行算术运算,以及解析和设置日期的命令。 4...
在编程领域,尤其是在C++中,计算任意日期是星期几是一项常见的任务,这涉及到日期处理和日历算法。本文将详细讲解如何使用C++来实现这个功能,主要围绕以下几个方面展开: 1. **日期表示**:在C++标准库中,`...
在这个函数中,你可以通过传递不同的intervalType参数来计算任意两个日期之间的差异。比如,如果你需要计算两个日期之间的完整年份差,可以使用"yyyy"作为intervalType;如果要包括闰年,那么可以使用"yy"。 无论是...