- 浏览: 266032 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
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 836mvn install:install-file -Dfile ... -
aspose word 单元格加斜杠
2017-03-10 17:14 1275Document doc = new Document(); ... -
beans profile
2017-03-01 17:05 462http://www.cnblogs.com/pangguom ... -
一个action操作两个service,其中一个报错,如何保证事务的一致性?
2016-05-17 14:14 1665你可以把这两个操作写在一个Service中,一般一个Actio ... -
web service 事物
2016-05-17 11:31 512转载:http://www.griddss.cn/show.a ... -
java 为什么只能单继承
2016-05-12 14:33 779从技术的角度来说,是为了降低复杂性。例如,A类中有一个m方法, ... -
java 递归
2015-12-23 16:13 530//菜单树形结构 public JSONArray tre ... -
bootstrap 验证是否通过
2015-11-27 17:57 705alert($('#formname').data('boot ... -
springMvc分页
2015-11-10 17:26 738@Override public Pagination&l ... -
jdbc 连接mysql
2015-10-13 13:45 563import java.sql.Connection; i ... -
java 定时任务
2015-07-31 19:54 560import java.util.TimerTask; ... -
java 判断为空
2015-07-31 18:44 617list.add(obj.getRegion()==null? ... -
js json里加数据
2015-03-21 09:28 499//记录答案 prop 属性,答案 function co ... -
查询多表返回一个list
2015-03-18 10:29 1040public List<?> getCourse ... -
判断多个参数
2015-03-12 17:09 464/** * @param obj 判断传入参数是否为空,如 ... -
xml 路径
2014-10-30 17:44 674三、如何获取XML文件全路径并读取配置参数 获取XML ... -
json嵌套 解析
2014-08-11 10:44 635JSONArray group = jsonObj.get ... -
java 读取txt和解析json
2014-08-06 16:20 1763File file = new File("e:\ ... -
读取properties配置文件里边的属性方法
2014-07-10 18:40 1034/** * */ package com.xcj ... -
求最大值和百分比
2014-07-09 19:20 712int[] num={4,3,1,7}; int ma ...
相关推荐
对于任意2个日期比如:date_start=2006-10-1、date_end=2006-10-14 ,首先计算这连个日期之间的时间间隔(天数),然后分别对date_start 和date_end 取得它们下一个星期一的日期,这样就可以得到一个新的可以整除7的...
matlab版计算任意两个日期相隔的天数,函数原型为function how_many_days = days(year1,month1,day1,year2,month2,day2)。
Java中计算任意两个日期之间的工作天数.java 工具类
输入任意日期(年月日),根据Zeller公式,利用matlab来计算是星期几
自己写的计算任意给出的两个日期的天数 C语言代码 可参考下
个人在进行C语言复习期间编写的一个进行日期计算的程序(算法优化),主要功能有:选择菜单,两个日期求间隔,按天数往后计算日期,按天数往前计算日期,功能循环。主要用了函数,指针,结构体等知识
java实现输入任意两个日期输出月份数和天数,综合考虑闰年、2月等因素,对于整月计算利息或按天数计算利息提供基础工具类。也可以吧内部类独立出来,方便跨包调用,可自行调整。很实用的一个实现。其他百度查到的很...
使用c编程,计算日期的任意一天是在晒网还是打鱼
MATLAB程序计算两个日期之间的总天数
1、对于任意三个整数,判断其是否为一个合法的日期值。 2、给定一个日期值,计算若干天后的日期值。 3、如果有两个日期值,计算它们相距的天数。
指定两个日期计算相隔的天数 指定两个日期计算相隔的天数
目的在于测试,但是对于初学者,也可以获得一些小的经验,事实上用vc提供的CTime函数的只用范围是1970年1月1日到2038年1月18日,再往后的日期就不能自动得到星期了,这个程序可以得到1812年到2012年任意一天的星期,...
计算任意两年之间的间隔天数的java代码,可以自己输入任意的年月日。
计算任意两个日期的间隔天数,直接很简单的一句话就实现了,不用大量代码,使用一个函数
自己写的,用来计算两个日期间的天数,以及工作日的天数,后者的算法我很满意.
VB之文件处理精彩编程-根据任意输入的日期,得出星期几(2KB)
Java实现给定日期计算星期几。通过给定****-**-**的格式来计算星期几。
通过本程序,可以计算任意日期的前一天的日期
数据结构的课程设计,可实现任意长度加减法计算
本文实例讲述了Python实现计算圆周率π的值到任意位的方法。分享给大家供大家参考,具体如下: 一、需求分析 输入想要计算到小数点后的位数,计算圆周率π的值。 二、算法:马青公式 π/4=4arctan1/5-arctan1/239 ...