• 日期操作


    final static long EIGHT_HOURS = 8 * 60 * 60 * 1000;
    public final static long ONE_HOUR = 60 * 60 * 1000;
    public final static long DAY = 24 * 60 * 60 * 1000;
    public final static long WEEK = 7 * 24 * 60 * 60 * 1000;
    public final static long ONE_MINUTE = 60 * 1000;
    
     
    
     
    
    /**
    
    * 计算两个日期之间相差的天数
    * 
    * @param startTime
    * 开始的时间
    * @param currentTime
    * 当前的时间
    * @return 相差天数
    * @throws ParseException
    */
    
    public static int daysBetween(Date startTime, Date currentTime) throws ParseException {
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
      startTime = sdf.parse(sdf.format(startTime));
      currentTime = sdf.parse(sdf.format(currentTime));
      Calendar cal = Calendar.getInstance();
      cal.setTime(startTime);
      long time1 = cal.getTimeInMillis();
      cal.setTime(currentTime);
      long time2 = cal.getTimeInMillis();
      long between_days = (time2 - time1) / (1000 * 3600 * 24);
    
      return Integer.parseInt(String.valueOf(between_days));
    }
    
     
    
    /**
    * 对时间进行天加减运算
    * 
    * @param time    要被加减的时间
    * @param num   被加减的天数(正为加,负为减)
    * @return
    */
    public static long addDate(long time, int num) {
      Calendar cal = Calendar.getInstance();
      cal.setTime(new Date(time));
      cal.add(Calendar.DATE, num);
      return cal.getTime().getTime();
    }
    
    /**
    * 对小时加减运算
    *
    * @param date
    * @param num
    * @return
    */
    public static long addHour(long time, int num) {
      Calendar cal = Calendar.getInstance();
      cal.setTime(new Date(time));
      cal.add(Calendar.HOUR_OF_DAY, num);
      return cal.getTime().getTime();
    }
    
    /**
    * 对分钟加减运算
    *
    * @param date
    * @param num
    * @return
    */
    public static long addMinute(long time, int num) {
      Calendar cal = Calendar.getInstance();
      cal.setTime(new Date(time));
      cal.add(Calendar.MINUTE, num);
      return cal.getTime().getTime();
    }
    
    /**
    * 获取当天0点的时间戳
    *
    * @param
    * @return
    */
    public static long getTodayZeroHour(long time) {
      SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
      try {
          return formatter.parse(formatter.format(new Date(time))).getTime();
        } catch (ParseException e) {
          e.printStackTrace();
          return 0;
        }
    }
    
    /**
    * 根据时间获取当月多少天
    *
    * @param date
    * @param num
    * @return
    */
    public static int getDayByCurMon(long time) {
      int day = 0;
      try {
          Date date = new Date(time);
          Calendar cal = Calendar.getInstance();
          cal.setTime(date);
          day = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
          return day;
        } catch (Exception e) {
          e.printStackTrace();
        }
         return day;
    }
    
    //获取当前时间所在周的开始日期
    public static Date getFirstDayOfWeek(Date date) {
      Calendar c = Calendar.getInstance();
      c.setFirstDayOfWeek(Calendar.MONDAY);
      c.setTime(date);
      c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek()); // Monday
      return getDayStart(c).getTime();
    }
    
    // 获取当前时间所在周的结束日期
    public static Date getLastDayOfWeek(Date date) {
      Calendar c = Calendar.getInstance();
      c.setFirstDayOfWeek(Calendar.MONDAY);
      c.setTime(date);
      c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek() + 6); // Sunday
      return getDayEnd(c).getTime();
    }
  • 相关阅读:
    Socket接口(基于 Linux-2.4.0已更新)
    IP协议源码分析(基于linux-2.4.0已更新)
    udp_sendmsg源码完整分析(基于linux5.12.13版本内核)
    UDP详细理解(实现部分基于linux5.12.12版本内核)
    IP地址分配(静态分配+动态分配+零配置)
    计算机网络由哪些硬件设备组成?(基础收录)
    浅析C语言定义时赋值、定义后赋值、定义时不赋值
    《C指针全解》让你不再害怕指针
    makdown文字图片居中字体颜色表格列宽
    (C语言内存二十一)C语言变量的存储类别和生存期
  • 原文地址:https://www.cnblogs.com/lizhen-home/p/7692338.html
Copyright © 2020-2023  润新知