`
pure1202
  • 浏览: 60033 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

怎样求2个日期间隔的工作日数?

阅读更多
已知:上班时间为9:00,下班时间表7:30,中午休息1个小时,工作7.5小时
则2009-04-08 9:00 ~ 2009-04-13 18:30的间隔工作日数为:4
分析:04-08 9:00~17:30 1天
04-09 9:00~17:30 1天
04-10 9:00~17:30  1天
04-11 双休
04-12 双休
04-13 9:00~18:30  1天

这个算法怎样实现?????
分享到:
评论
4 楼 pure1202 2009-04-08  
HOHO。。。。。,实现了:oops:
 
贴下代码,希望大家有时间帮我找找bug啦
3 楼 pure1202 2009-04-08  
可以计算出休息日的天数:
private static int[] val = new int[] { 1, 7 };// 默认休息日为 六,日
1方法:public static int getRestDays(String bDateStr,String eDateStr)
int days = 0;
Calendar bDate = getCalendar(bDateStr);
Calendar eDate = getCalendar(eDateStr);
while(eDate.after(bDate)){//判断是否有休息日
for (int i = 0; i < val.length; i++) {
if (bDate.get(bDate.DAY_OF_WEEK) == val[i]) {
days ++;
}
}
bDate.add(bDate.DATE,1);
}
return days;

两个日期相差的天数:
2方法:public double getDoubleMargin(String date1, String date2) {
double margin;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date dt1 = sdf.parse(date1);
Date dt2 = sdf.parse(date2);
long l = dt1.getTime() - dt2.getTime();
margin = (l / (24 * 60 * 60 * 1000.00));
return margin;
}
结果:2方法-1方法 是肯定不可以的啦。
关键是要定位到时间点 怎么处理呢?
2 楼 pure1202 2009-04-08  
抛出异常的爱 写道

pure1202 写道
已知:上班时间为9:00,下班时间表7:30,中午休息1个小时,工作7.5小时 则2009-04-08 9:00 ~ 2009-04-13 18:30的间隔工作日数为:4 分析:04-08 9:00~17:30 1天 04-09 9:00~17:30 1天 04-10 9:00~17:30&nbsp; 1天 04-11 双休 04-12 双休 04-13 9:00~18:30&nbsp; 1天 这个算法怎样实现?????作过这个.... 用sql实现 不过法定假日没解决 TO_char(date,'D')得到的是星期 对星期分组...

谢谢。
TO_char(date,'D')用这个函数?能具体些吗?
一天:7.5/24 = 0.3125
把0.3125算1天吗?怎样排除非工作时间的日期呢?
1 楼 抛出异常的爱 2009-04-08  
pure1202 写道
已知:上班时间为9:00,下班时间表7:30,中午休息1个小时,工作7.5小时
则2009-04-08 9:00 ~ 2009-04-13 18:30的间隔工作日数为:4
分析:04-08 9:00~17:30 1天
04-09 9:00~17:30 1天
04-10 9:00~17:30  1天
04-11 双休
04-12 双休
04-13 9:00~18:30  1天

这个算法怎样实现?????

作过这个....
用sql实现
不过法定假日没解决
TO_char(date,'D')得到的是星期

对星期分组...

相关推荐

    计算任意2个日期内的工作日、休息日、天数间隔(没有考虑到国定假日)

    对于任意2个日期比如:date_start=2006-10-1、date_end=2006-10-14 ,首先计算这连个日期之间的时间间隔(天数),然后分别对date_start 和date_end 取得它们下一个星期一的日期,这样就可以得到一个新的可以整除7的...

    C#计算两个日期间隔的年月日,精确到天,无视闰年等

    C#计算两个日期间隔的年月日,精确到天,无视闰年等。 /// /// 计算两个日期间隔的年月日 /// /// &lt;param name="MinDate"&gt;&lt;/param&gt; /// &lt;param name="MaxDate"&gt;&lt;/param&gt; /// &lt;returns&gt;&lt;/returns&gt; public ...

    c#计算两日期的工作时间间隔(排除非工作日)及计算下一个工作时间点..pdf

    C# 计算两日期的工作时间间隔(排除非工作日)及计算下一个工作时间点 本文将详细介绍使用 C# 语言计算两日期之间的工作时间间隔,并排除非工作日。同时,也会计算下一个工作时间点。 日期时间处理 在 C# 中,...

    计算除周六日、法定节假日以外两个日期之间的间隔天数

    计算除周六日、法定节假日以外两个日期之间的间隔天数

    MySql 是否工作日判断,得到T+n个工作日(含自定义节假日)函数

    2、Mysql 得到T+n个工作日日期(带自定义节假日、法定节假日) fGetWorkDay('2018-02-13', 5) ------------------------------ 2018-02-26 fGetWorkDay('2018-09-26', 5) ------------------------------ 2018-...

    计算两个日期相隔天数并减去节假日

    计算两个日期相隔天数并减去节假日,这个可以使用在各种需要通知的场景以及工作日提醒等

    两个时间间隔的天数

    通过分析提供的代码片段,我们了解到了一个简单的JavaScript函数 `functionDateDiff` 的工作原理及其应用场景。这个函数可以帮助开发者快速计算两个日期之间的天数差,适用于各种需要处理日期计算的场景。同时,我们...

    oracle 求取2个时间间隔的年月日

    根据提供的标题、描述、标签及部分内容,我们可以了解到这篇文章主要探讨的是如何在Oracle数据库中计算两个日期之间的年、月、日间隔。接下来,我们将详细解析这些功能,并解释它们是如何被使用的。 ### Oracle 中...

    2023年日历(标记工作日,节假日,调休,周末),计算两个日期相差的工作日天数

    压缩包里有2个文件,用于计算两个日期相差的工作日天数(排除周末和法定节假日): 1、excel表为2023年日历数据,并且备注工作日、周末,调休、节假日类型,可导入数据库。 2、SQL文件为2023年所有日期的插入SQL,并...

    易语言Access日期间隔查询

    2. **构建SQL语句**:日期间隔查询的核心是SQL查询。在Access中,可以使用`BETWEEN`关键字来选取日期间的数据。例如,如果你想要查询2020年1月1日到2020年12月31日之间的记录,SQL语句可能是这样的: ``` SELECT *...

    计算2个日期相差天数、去除节假日周末

    在编程领域,尤其是在数据分析、日程管理或者时间序列分析中,计算两个日期之间的差异并考虑工作日排除节假日和周末是一项常见的任务。C++作为一种强大的系统级编程语言,提供了丰富的库来处理日期和时间操作。本篇...

    asp.net+c#做的计算任意两天的间隔和工作日天数的源码

    在IT行业中,编程是一项至关重要的技能,特别是在Web开发领域。ASP.NET和C#的结合是构建高效、可扩展的Web...同时,对于开发者而言,这提供了一个优化算法和提高效率的机会,特别是处理日期间隔和工作日计算的场景。

    Excel VBA 计算两个时间间隔, 精确到天,时,分,秒

    这里我们使用"秒"("s")作为日期间隔单位,`DateDiff`函数会返回两个日期之间相差的总秒数。如果需要精确到天、时、分、秒,我们可以分别对这个秒数进行转换: ```vba Dim days As Long Dim hours As Integer Dim ...

    SQL语句计算两个日期之间有多少个工作日的方法

    2. 如果两个日期跨越了多个周,首先计算跨越的完整周数乘以5(因为一周工作5天),然后加上第一周的工作日数,再加最后一周的工作日数。 以下是一个自定义函数`dbo.CalcWorkHours`,它接收两个日期参数`@bdate`...

    用函数计算两个日期的间隔的EXCEL文件实例

    - 使用`EOMONTH`函数可以计算跨月的日期间隔,如计算两个日期间的整月数。 - 结合`DATEDIF`函数(非标准函数,但在所有版本的Excel中都可用),可以计算出特定单位的间隔,如天数、月份或年份。例如,`=DATEDIF(A1...

    Access日期间隔查询

    在Access数据库中,日期间隔查询是一项常见的操作,它涉及到如何从日期字段中筛选出满足特定时间范围的数据...通过深入学习和实践,你可以进一步提升在Access中的日期处理能力,解决实际工作中的各种日期间隔查询问题。

    MySQL计算两日期之间的工作日

    纯SQL语句实现,不需要写存储过程或者函数 在MySQL环境下测试过没有问题

    Java计算工作日

    通过以上步骤,我们可以编写一个高效的Java程序来计算给定时间段内按照特定间隔的工作日。这个程序可以根据实际情况进行扩展,例如考虑不同的工作日定义(比如某些国家周日不休息)或添加动态获取节假日的接口(如...

    javascritp 日期加减、间隔函数源码

    特别是对于日期加减及计算日期间隔这样的常见任务,JavaScript 并没有提供像 VBScript 中那样直接的方法(如 `DateAdd` 和 `DateDiff`)。因此,本文将详细介绍如何在 JavaScript 中实现类似的功能,并通过示例代码...

    2020年最新日期oracle+mysql两个版本的SQL(包含节假日、工作日)

    本资源提供的“2020年最新日期oracle+mysql两个版本的SQL”是针对Oracle和MySQL两大主流数据库系统定制的,旨在帮助用户快速获取和操作2020年的所有日期信息,包括节假日和工作日。以下是关于这两个数据库系统以及...

Global site tag (gtag.js) - Google Analytics