java 时间间隔 工作日_计算Java中两个日期之间的工作日数
5行代码无循环的解决方案
定义之间的天数的方式与ChronoUnit.DAYS.between(start, end)表示4星期一至星期五之间存在天数的方式相同。由于我们只对工作日感兴趣,因此我们必须减去周末,因此从星期五到星期二会有2工作日(只需计算endDay - startDay并减去2周末)。1如果要包含结果,则添加到结果中,即不要间隔几天。
我提出两种解决方案。
第一个解决方案(5线,简短和隐秘):
import java.time.*;
import java.time.temporal.*;
public static long calcWeekDays1(final LocalDate start, final LocalDate end) {
final DayOfWeek startW = start.getDayOfWeek();
final DayOfWeek endW = end.getDayOfWeek();
final long days = ChronoUnit.DAYS.between(start, end);
final long daysWithoutWeekends = days - 2 * ((days + startW.getValue())/7);
//adjust for starting and ending on a Sunday:
return daysWithoutWeekends + (startW == DayOfWeek.SUNDAY ? 1 : 0) + (endW == DayOfWeek.SUNDAY ? 1 : 0);
}
第二种解决方案:
public static long calcWeekDays2(final LocalDate start, final LocalDate end) {
final int startW = start.getDayOfWeek().getValue();
final int endW = end.getDayOfWeek().getValue();
final long days = ChronoUnit.DAYS.between(start, end);
long result = days - 2*(days/7); //remove weekends
if (days % 7 != 0) { //deal with the rest days
if (startW == 7) {
result -= 1;
} else if (endW == 7) { //they can't both be Sunday, otherwise rest would be zero
result -= 1;
} else if (endW < startW) { //another weekend is included
result -= 2;
}
}
return result;
}
java 时间间隔 工作日_计算Java中两个日期之间的工作日数相关推荐
- Mysql判断工作日函数_MySQL函数查找两个日期之间的工作日数
慕田峪9158850 该解决方案使用与Rodger基本相同的方法,除了生成矩阵的方法要复杂得多.注意:此解决方案的此输出与NETWORKDAYS不兼容.与Rodger的解决方案一样,这可以计算开始日期 ...
- java 时间间隔 工作日,计算Java中两个日期之间的工作日数
Can anyone point me to some Java snippet wherein i can get business (except Sat and Sun) days betwee ...
- java计算时间区间工作日_Java如何计算两个日期之间的工作日数?
以下代码可帮助您查找两个日期之间指定的工作日(星期一,星期二,星期三等)的数量.我们下面使用的解决方案是在两个日期之间循环,并检查这些日期的工作日是否等于我们要计算的日期.package org.nh ...
- mysql 计算工作日_MySQL函数查找两个日期之间的工作日数
该解决方案使用与Rodger基本相同的方法,除了生成矩阵的方法要复杂得多.注意:此解决方案的此输出与NETWORKDAYS不兼容. 与Rodger的解决方案一样,这可以计算开始日期(@S)和结束日期( ...
- 【SQL开发实战技巧】系列(十七):数据仓库中时间类型操作(初级)确定两个日期之间的工作天数、计算—年中周内各日期出现次数、确定当前记录和下一条记录之间相差的天数
系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...
- Joda-Time中两个日期之间的天数
本文翻译自:Number of days between two dates in Joda-Time How do I find the difference in Days between two ...
- 获取Moment Js中两个日期之间的小时差异
本文翻译自:Get hours difference between two dates in Moment Js I'm able to get the difference between two ...
- SQL计算两个日期之间的工作天数
if exists (select * from dbo.sysobjects where id = object_id(N'[tb_Holiday]') and OBJECTPROPERTY(id, ...
- 如何计算两个日期之间的工作天数
大家好,才是真的好. 很多人觉得,Notes应用中的日期处理是一大需求点,也是一大难点,为此很多人使用Java代码来进行处理.但要是学会并灵活运用Domino中的公式,很多问题会变得很简单.今天我们就 ...
最新文章
- .fa .fna和.fasta是同一种格式文件吗?
- ImportError: /lib64/libc.so.6: version `GLIBC_2.17‘ 问题解决
- matlab图像融合评价,MATLAB 图像融合评估算法
- 【转】激活 ActiveX 控件
- excel转html放在tomcat,Excel转web!把excel在线打开??
- mybatis float 小数0 不显示_卧槽!用 float 存储金额,老板说损失从工资里扣!
- 程序员面试金典——9.6合法序号序列判断
- 如何修改sql server 表中自增长ID列,因删除而不连续。可以使用临时表
- c语言新手的无奈,几个新手容易犯的错误
- Transfer Learning from Speaker Verification to Multispeaker Text-To-Speech Synthesis
- python多因素方差分析_统计科学之多因素方差分析
- 如何设置局域网共享打印机及问题解决
- 89c51流水灯汇编语言程序,单片机控制流水灯程序 汇编语言
- Tomcat崩溃排查
- 计算机常用的颜色英文缩写,计算机用语中常见英文缩写和词组J
- 文件被清理了怎么恢复
- QSlider美化规则
- YARN | 让你彻底搞明白YARN资源分配
- 智慧养老如何养老及智慧养老的发展情况
- 最简单的线性回归模型 李烨_模型
热门文章
- 2022年全球市场自行车零配件总体规模、主要企业、主要地区、产品和应用细分研究报告
- 筹码底部共振(同花顺指标 副图 源码 测试图)
- 米家Zigbee系列传感器软件设计总结
- web页面之响应式布局
- Android 免root 备份数据,教你安卓手机免Root恢复手机数据的三种方法
- 华为手机助手上架流程_2019年各大安卓应用商店上架经验,含流程,物料,方法(建议收藏)...
- windows的命令行工具和DOS工具的区别
- jy-12-SPRINGMYBATIS02——云笔记02-刘苍松
- 玩转JDBC打造数据库操作万能工具类JDBCUtil,加入了高效的数据库连接池,利用了参数绑定有效防止SQL注入
- 工作流模式的学习与总结