一段时间-java计算两个日期间有多少自然周

问题描述

java计算两个日期间有多少自然周

给定一个开始日期和一个结束日期,开始日期如果是周六或周天,那么这就不算一周。结束日期哪怕是周一也要算是一周。最好能有代码,谢谢!

解决方案

有点小失误,修改过的

public static int get(Date dtS, Date dtE) {
Calendar calS = Calendar.getInstance();
calS.setTime(dtS);
boolean isMonday = true;
Calendar calE = Calendar.getInstance();
calE.setTime(dtE);
if(calS.get(Calendar.DAY_OF_WEEK)!=Calendar.MONDAY){//不是周一不计入
calS.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
return (int) (Math.ceil((calE.getTimeInMillis()-calS.getTimeInMillis())/(86400000.0*7))-1);

    }else{
        return (int) (Math.ceil((calE.getTimeInMillis()-calS.getTimeInMillis())/(86400000.0*7)));
    }

}

解决方案二:

java计算两个日期间隔
java中计算日期间隔
计算两个日期间的差

解决方案三:

问题问的不太容易理解呀,你是想要只要是从周一开始就算是一周么
public static int get(Date dtS, Date dtE) {
Calendar calS = Calendar.getInstance();
calS.setTime(dtS);

    if(calS.get(Calendar.DAY_OF_WEEK)!=Calendar.MONDAY){//不是周一不计入
        calS.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
    }

    Calendar calE = Calendar.getInstance();
    calE.setTime(dtE);
    return (int) (Math.ceil((calE.getTimeInMillis()-calS.getTimeInMillis())/(86400000.0*7))-1);
}

解决方案四:

时间: 2024-12-24 11:38:37

一段时间-java计算两个日期间有多少自然周的相关文章

js中 计算两个日期间的工作日的简单实例_javascript技巧

实例如下: //起始日期,/pattern/是正则表达式的界定符,pattern是要匹配的内容,只用于第一个符号的匹配,g为全局匹配标志 var beginDate = new Date("2013-01-01".replace(/-/g, "/")); //结束日期 var endDate = new Date("2013-01-31".replace(/-/g, "/")); //日期差值,即包含周六日.以天为单位的工时,

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

/* 因为工作中一个奇怪的需求,要用SQL语言计算两个日期间有多少个工作日. 设定是一个星期有5个工作日,从星期一到星期五 说明:   第一个星期的工作日数:DATEPART(dw, @begdt)-DATEPART(dw, @begdt),最少0天   末一个星期的工作日数:DATEPART(dw, @enddt),最多5天 计算方法:   如果两个日期处在同一个星期内,直接计算"第一个星期的工作日数"   否则按下面的公式计算     (两个日期间的总天数 - 第一个星期的天数 -

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

/* 因为工作中一个奇怪的需求,要用SQL语言计算两个日期间有多少个工作日. 设定是一个星期有5个工作日,从星期一到星期五 说明:   第一个星期的工作日数:DATEPART(dw, @begdt)-DATEPART(dw, @begdt),最少0天   末一个星期的工作日数:DATEPART(dw, @enddt),最多5天 计算方法:   如果两个日期处在同一个星期内,直接计算"第一个星期的工作日数"   否则按下面的公式计算     (两个日期间的总天数 - 第一个星期的天数 -

java计算两个时间相差天数的方法汇总_java

问题描述: 输入:两个日期 输出:两个日期相差的天数 具体代码实现 方法1: 通过Calendar类的日期比较.注意:这里需要考虑一下: 日期是跨年份的,如一个是2012年,一个是2015年的 年份是分闰年和平年的,各自的天数不同 /** * date2比date1多的天数 * @param date1 * @param date2 * @return */ public static int differentDays(Date date1,Date date2) { Calendar cal

verilog-这段代码是计算两个数相除,不能输出正确结果,求问错在哪里

问题描述 这段代码是计算两个数相除,不能输出正确结果,求问错在哪里 module divide_16bits(op1,op2,result ); input [15:0] op1; input [15:0] op2; output reg [15:0] result; reg error; integer p,q,r; reg [15:0] temp; reg [15:0] add_result; always @(op1 or op2) begin assign error = ~{|{op2

link用循环计算两个日期之间有多少工作日

问题描述 link用循环计算两个日期之间有多少工作日 用循环计算两个日期之间有多少工作日,link怎么实现?用takewhile怎么代替while? 解决方案 不考虑过节和轮休,写一个给你 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class P

JAVA计算两个日期相差的实例_java

在Java开发物流或是其他功能的时候会用到两个日期 相差多天的数据,所以整理了一下备用.调用方式: 复制代码 代码如下: long date1 = getDateTime("20121201");//可改成自己的日期类型,但以 "20121212"这种格式 long date2 = getDateTime("20121212");   int day = dateInterval(date1, date2);   System.out.print

Java 计算两个日期相差的天数

import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class test16 { /** * @param args * @throws ParseException */ public static void main(String[] args) throws ParseException { /

提高运行效率-源代码去下,用来计算两个日期之间的时间。但是运行特别慢。求大神优化,能让它运行快点

问题描述 源代码去下,用来计算两个日期之间的时间.但是运行特别慢.求大神优化,能让它运行快点 #include using namespace std; const int lmonth[13]={0,31,29,31,30,31,30,31,31,30,31,30,31}; //闰年每个月份的时间 const int umonth[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; //非闰年每个月份的时间,定义符合使用习惯 bool isLeapYear