精华内容
下载资源
问答
  • 下面小编就为大家带来一篇java计算两个日期之前的天数实例(排除节假日和周末)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • Calendar和Date都没用提供能直接计算两个日期之间时间间隔的api,所以使用了在java8后提供的java.time包下的Duration类来实现,需要先将Date转成java8提供的java.time.LocalDateTime,然后再使用Duration计算两个时间...

    Calendar和Date都没用提供能直接计算两个日期之间时间间隔的api,所以使用了在java8后提供的java.time包下的Duration类来实现,需要先将Date转成java8提供的java.time.LocalDateTime,然后再使用Duration计算两个时间之间的间隔。代码如下:

    public String createResponseDurationStr(Date startTime, Date endTime) {
            Calendar
            StringBuilder sb = null;
            if (startTime != null && endTime != null){
                Instant startInstant = startTime.toInstant();
                Instant endInstant = endTime.toInstant();
                ZoneId zoneId = ZoneId.systemDefault();
                LocalDateTime start = startInstant.atZone(zoneId).toLocalDateTime();
                LocalDateTime end = endInstant.atZone(zoneId).toLocalDateTime();
                long days = Duration.between(start,end).toDays();
                long hours = Duration.between(start, end).toHours();
                long minutes = Duration.between(start, end).toMinutes();
                if (days > 0){
                    sb = new StringBuilder("");
                    sb.append(days).append("天");
                }
                if (hours >= 0){
                    sb = sb ==  null ? new StringBuilder("") : sb;
                    if (sb.length() > 0 || hours != 0){
                        sb.append(hours).append("小时");
                    }
                }
                if (minutes > 0){
                    sb = sb ==  null ? new StringBuilder("") : sb;
                    sb.append(minutes).append("分钟");
                }
                if (sb != null && sb.length() > 0){
                    sb.insert(0,"响应时长: ");
                }
            }
            return sb == null ?  null : sb.toString();
        }
    

    返回示例:

    响应时长:1小时5分钟

    展开全文
  • } catch (ParseException e) { System.out.println("日期格式非法"); e.printStackTrace(); } // 休息日天数 int count = 0; while (cl1.compareTo(cl2) ) { //如果是周六或者周日则休息日+1 if (cl1.get(Calendar....
        public Long getWorkTime(Date startDate, Date endDate) {
            String start = DateFormatUtils.format(startDate.getTime(), "yyyy-MM-dd");
            String end = DateFormatUtils.format(endDate.getTime(), "yyyy-MM-dd");
            /**
             * 由数据库配置表中查出
             * 特殊的工作日(星期六、日工作)
             */
            List<String> specialWorkDays = this.baseMapper.selectSpecialWorkDays(start, end);
            /**
             * 由数据库配置表中查出
             * 特殊的休息日(星期一到五休息)
             */
            List<String> specialRestDays = this.baseMapper.selectSpecialRestDays(start, end);
            
            
            return getworkTime(start, end, specialWorkDays, specialRestDays, startDate, endDate);
        }
    
        private Long getworkTime(String strStartDate, String strEndDate, List<String> specialWorkDays, List<String> specialRestDays, Date startDate, Date endDate) {
    
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
    
            Calendar cl1 = Calendar.getInstance();
            Calendar cl2 = Calendar.getInstance();
    
            try {
                cl1.setTime(df.parse(strStartDate));
                cl2.setTime(df.parse(strEndDate));
    
            } catch (ParseException e) {
                System.out.println("日期格式非法");
                e.printStackTrace();
            }
    
            // 休息日天数
            int count = 0;
            while (cl1.compareTo(cl2) <= 0) {
                //如果是周六或者周日则休息日+1
                if (cl1.get(Calendar.DAY_OF_WEEK) == 7 || cl1.get(Calendar.DAY_OF_WEEK) == 1) {
                    count++;
                    //如果是周六或者周日,但是该日属于需要工作的日子则 -1
                    if (specialWorkDays.contains(DateFormatUtils.format(cl1.getTime(), "yyyy-MM-dd"))) {
                        count--;
                    }
                }
                //如果不是周六或者周日,但是该日属于国家法定节假日或者特殊放假日则+1
                if (specialRestDays.contains(DateFormatUtils.format(cl1.getTime(), "yyyy-MM-dd"))) {
                    count++;
                }
                cl1.add(Calendar.DAY_OF_MONTH, 1);
            }
    
            Long time= endDate.getTime() - startDate.getTime();
    
            time = time - (count * 1000 * 60 * 60 * 24L);
    
            return time;
        }
    
    
    展开全文
  • java计算两个日期之间相差的天数

    千次阅读 2020-06-28 16:53:22
    * 计算两个日期之间相差的天数 */ public static int daysBetween(Date sendDate, Date startDate) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); try { sendDate = sdf.parse(sdf.format...
    /**
     * 计算两个日期之间相差的天数
     */
    public static int daysBetween(Date sendDate, Date startDate) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        try {
            sendDate = sdf.parse(sdf.format(sendDate));
            startDate = sdf.parse(sdf.format(startDate));
        } catch (Exception e) {
            e.printStackTrace();
        }
        Calendar cal = Calendar.getInstance();
        cal.setTime(sendDate);
        long time1 = cal.getTimeInMillis();
        cal.setTime(startDate);
        long time2 = cal.getTimeInMillis();
        long between_days = (time2 - time1) / (1000 * 3600 * 24);
        return Integer.parseInt(String.valueOf(between_days));
    }
    展开全文
  • 计算计算两个日期之间间隔(比如生日据今天等)" TITLE="Java 计算计算两个日期之间间隔(比如生日据今天等)" /> 计算计算两个日期之间间隔(比如生日据今天等)" TITLE="Java 计算计算两个日期之间间隔...

    Java <wbr>计算计算两个日期之间的间隔(比如生日据今天等)

    Java <wbr>计算计算两个日期之间的间隔(比如生日据今天等)

    Java <wbr>计算计算两个日期之间的间隔(比如生日据今天等)

    import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Scanner;


    public class DateDemo
    {
     
     
     public static void main(String [] args) throws ParseException
     {
      
      
      Scanner in = new Scanner(System.in);
      System.out.println("请输入第一个日期(格式为:年-月-日):");
      String date1 = in.nextLine();
      System.out.println("请输入第二个日期(格式为:年-月-日):");
      String date2 = in.nextLine();
      
         test(date1,date2);
      
     }
    //  用来计算两个日期之间相差的毫秒数
     public static void test(String date1,String date2) throws ParseException
       {
      DateFormat df = DateFormat.getDateInstance();
      df= new SimpleDateFormat("yyyy-MM-dd");
      
      Date date_1 = df.parse(date1);
      Date date_2 = df.parse(date2);
      
      long time1 = date_1.getTime();
      long time2 = date_2.getTime();
      long time3 = Math.abs(time1-time2);
      
      int day = getDay(time3);
         System.out.println("两日期相隔"+day+"天");
       }
    //将两个日期之间的毫秒数换算成天数
     private static int getDay(long time)
     {
      int day = (int)(time/1000/60/60/24);
      return day;
     }
    }

    展开全文
  • java计算两个日期时间之间间隔

    千次阅读 2019-02-13 16:14:02
    public static String getDatePoor(Date endDate, Date nowDate) { long nd = 1000 * 24 * 60 * 60; long nh = 1000 * 60 * 60; long nm = 1000 * 60;... // 获得两个时间的毫秒时间差异 ...
  • 代码如下:// 计算两个日期间隔天数 function DateDiff(sDate1, sDate2){ //sDate1和sDate2是2002-12-18格式 var aDate, oDate1, oDate2, iDays aDate = sDate1.split(“-“) oDate1 = new Date...
  • * 计算两个日期间隔天数 * * @param startTime : 开始时间 * @param endTime : 结束时间 * @param format: 时间格式 * @return */ public static int caculateTotalTime(String startTime, String endTime,...
  • Java 计算两个日期之间相差的月数

    热门讨论 2009-07-07 19:45:21
    Java 计算两个日期之间相差的月数 Java 计算两个日期之间相差的月数
  • * 计算两个日期之间相隔的天数 * * @author zql * */ public class Test { public static void main(String[] args) { Test t = new Test(); int r = t.getDaySub(2020, 1, 1, 2020, 2, 5); System....
  • 在上述两个日期之间的91天持续时间,期望代码返回3个月的持续时间,但是以下方法仅返回2个月。这是Java 8中的bug 吗?日期为91天,却仅返回2个月。 Period diff = Period.between(LocalDate.parse("2021-08-31"), ...
  • 计算两个日期之间的天数集合,java方法写得
  • * 计算两个日期间隔天数 * * @param startTime : 开始时间 * @param endTime : 结束时间 * @return */ public static int caculateTotalTime(String startTime, String endTime) { Si...
  • Calendar now = Calendar.getInstance(); Calendar startTimeCal = Calendar.getInstance(); Calendar endTimeCal = Calendar.getInstance(); long buyCount; start
  • Java计算 2个日期间隔天数

    万次阅读 多人点赞 2019-05-10 17:18:40
    废话不多说,贴代码就完了!老铁! /** * 计算时间 * @param startTime : 开始时间 * @param endTime : 结束时间 * @return */ public static int caculateTotalTime(St...
  • java计算两个时间(yyyy-MM-dd HH:mm:ss)相差月数两个时间格式可为年月日时分秒
  • 网上有很多版本的此类计算,但都不是很满意。 入参2019-01-01 23:59:59和2019-01-02 00:00:00百分之八... * 判断两个日期横跨天数(不含当天) * E.g., 2019-09-19 12:00:00 2019-09-20 06:00:00 return 1 * E....
  • java计算两个日期之间相差的天数的四种方法

    万次阅读 多人点赞 2020-09-22 10:44:14
    计算两个日期直线相差的天数的四种方法 第一种:时间戳的方式,计算两个日期的时间戳的差,再除当天的毫秒数即可得到相差的天数。 public static void main(String[] args) { DateFormat dft = new ...
  • 计算除周六日、法定节假日以外两个日期之间间隔天数
  • java计算两个日期相差的秒数

    千次阅读 2021-07-09 18:14:57
    * 计算两个日期相差的秒数 * * @param startDate * @param endDate * @return */ public static int calLastedTime(Date startDate, Date endDate) { long a = endDate.getTime(); long b = ...
  • Java8 计算两个日期之间相差多少天

    千次阅读 2019-12-30 14:39:18
    在使用Java8 新特性中关于Period.between的方法时需注意该方法获取日期的区间问题。 @Test public void test1(){ LocalDate from = LocalDate.of(2018,10,1); System.out.println(Period.between(from,LocalDate...
  • java 计算两个时间之间间隔

    千次阅读 2017-07-07 17:03:27
    java 计算两个时间之间间隔 http://blog.csdn.net/cynhafa/article/details/8053166   以某种方式表现 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式 System.out....
  • public class Test { public static void main(String[] args) throws Exception { List<String> lists = getBetweenTime("2019-01-02 21:20:12","2019-01-08 19:12:20"); for(String list:lists) ...
  • Java8新增了java.time包,提供...其中LocalDate正是本文中使用的可以帮助计算两个日期间隔天数的类。(其它常用的还有LocalTime, Clock, Instant等,本文不赘述) 话不多说,上代码! LocalDate day0 = LocalD...
  • Java计算两个时间的间隔分钟数

    千次阅读 2019-11-07 18:22:51
    计算两个时间的间隔分钟数: public static void main(String[] args) throws ParseException { long start = DateHelper.parseDateTime("2019-11-07 18:08:00").getTime(); long end = System.currentTimeMillis...
  • public static List&lt;String[]&gt; analyseDate(int cycle,Date begintime,Date endtime){ List&lt;String[]&gt; results = new ArrayList&lt;String[]&... Calendar c1 = Calendar....
  • java计算两个日期相差几天 1.public class Test { 2.public void dateDiff(String startTime, String endTime, String format) { 3.//按照传入的格式生成一个simpledateformate对象 4.SimpleDateFormat sd = ...
  • Java 8中,我们可以使用ChronoUnit.DAYS.between(from, to)计算两个日期之间的天数。 1. LocalDate JavaBetweenDays1.java package com.mkyong.java8; import java.time.LocalDate; import java.time....
  • * @desc 获取两个日期之间的天数 */ public static int getDaysBetween(String smallDate, String bigDate) throws ParseException { // 日期格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); ...
  • Java计算两个日期相差的月数

    万次阅读 2018-09-27 16:01:59
    /** * 获取两个日期相差的月数 */ public static int getMonthDiff(Date d1, Date d2) { Calendar c1 = Calendar.getInstance(); Calendar c2 = Calendar.getInstance(); c1.setTim...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,119
精华内容 7,247
关键字:

java计算两个日期之间的间隔

java 订阅