添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接


计算两个时间工作日天数差。

  1. 方法忽略法定节假日;
  2. 忽略周末补充上班;
  3. stop当天算入计算天数;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

/**
* https://gitee.com/rodert/JavaPub
*/

public class CalcWorkDays {

public static void main(String[] args) throws ParseException {
LocalDateTime localDateTimeStart = LocalDateTime.ofInstant(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse("2022-01-01 01:30:10").toInstant(), ZoneId.systemDefault());
LocalDateTime localDateTimeEnd = LocalDateTime.ofInstant(new SimpleDateFormat("yyyy-MM-dd").parse("2022-12-31").toInstant(), ZoneId.systemDefault());
System.out.println(localDateTimeStart + " ~ " + localDateTimeEnd + " 包含工作日:" + getTimeDiffDay(localDateTimeStart, localDateTimeEnd));

/**
* 计算两个时间工作日天数差。
* 1. 方法忽略法定节假日;
* 2. 忽略周末补充上班;
* 3. stop当天算入计算天数;
*
* @param localDateTimeStart
* @param localDateTimeStop
* @return
* @throws ParseException
*/
public static int getTimeDiffDay(LocalDateTime localDateTimeStart, LocalDateTime localDateTimeStop) throws ParseException {
if (localDateTimeStart.isAfter(localDateTimeStop)) {
return -1;
}
System.out.println(localDateTimeStart);
Date begin = Date.from(localDateTimeStart.atZone(ZoneId.systemDefault()).toInstant());
Date endTime = Date.from(localDateTimeStop.atZone(ZoneId.systemDefault()).toInstant());
Calendar cEnd = new GregorianCalendar();
cEnd.setTime(endTime);
// 计算时算入stop当天
cEnd.add(Calendar.DATE, 1);
Date end = cEnd.getTime();
Calendar c = Calendar.getInstance();
c.setTime(begin);
int count = 0;
while (c.getTime().before(end)) {
// 非周末
if (c.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY && c.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY) {
count++;
}
c.add(Calendar.DATE, 1);
}
return count;
}
}

Java 计算两个时间点包含工作日天数【拿来即用】_java



java 静态块赋值 java静态代码块存储在哪里

何为代码块在Java中用{ }括起来的的代码被称为代码块。根据其位置和声明的不同,可以分为:局部代码块、构造代码块、静态代码块。1、局部代码块:在局部位置,用于限定变量的生命周期,提高内存利用率。 就是平时用到的{ },例如:class Arrays { }限定变量的生命周期:public class Main { public static void main(String[] ar

使用zap函数将pymysql返回值转json python函数作为返回值

函数作为返回值高阶函数除了可以接收函数作为参数外,还可以把函数作为结果值返回。 def lazy_sum(*args): def sum(): for n in args:   ax = ax + n return ax return sum f = lazy_sum(1,2,3,4,5) print f