• CalendarUtil.java


      1 package com.honghailt.dataextracter.utils;
      2 
      3 import java.text.ParseException;
      4 import java.text.SimpleDateFormat;
      5 import java.util.ArrayList;
      6 import java.util.Calendar;
      7 import java.util.Date;
      8 import java.util.List;
      9 
     10 public  class CalendarUtil {
     11     
     12     //下月第一天
     13     public static Date getNextMonth(Date beginTime) {
     14         Calendar c = Calendar.getInstance();
     15         c.setTime(beginTime);
     16         c.set(Calendar.MONTH, c.get(Calendar.MONTH) + 1);
     17         c.set(Calendar.DAY_OF_MONTH, 1);
     18         return c.getTime();
     19     }
     20 
     21     //当天几号
     22     public static int getMonthOfDate(Date date) {
     23         Calendar c = Calendar.getInstance();
     24         c.setTime(date);
     25         return c.get(Calendar.DAY_OF_MONTH);
     26     }
     27     //当月有多少天
     28     public static int getLastDayOfMonth(Date date) {
     29         Calendar c = Calendar.getInstance();
     30         c.setTime(date);
     31         int month = c.getActualMaximum(Calendar.DATE);
     32         return month;
     33     }
     34    
     35     //当前月 -1
     36     public static int getMonth(Date date) {
     37         Calendar c = Calendar.getInstance();
     38         c.setTime(date);
     39         int month = c.get(Calendar.MONTH);
     40         return month;
     41     }
     42   
     43     //当月第一天
     44       public static Date getFirstDayOfMonth(Date beginTime){
     45            Calendar c = Calendar.getInstance();
     46            c.setTime(beginTime);
     47            c.set(Calendar.DAY_OF_MONTH, 1);
     48            return c.getTime();
     49       }
     50   
     51     //获得当周第几天  i=0表示星期一
     52     public static String getNowWeekBegin(Date date,int i) {
     53         Calendar cd = Calendar.getInstance();
     54         cd.setTime(date);
     55         cd.set(Calendar.DAY_OF_WEEK, Calendar.MONTH +i);
     56         if(i==6){
     57          cd.set(Calendar.DAY_OF_WEEK, Calendar.MONTH+5);
     58          cd.add(cd.DATE, 1); 
     59         }
     60         Date  monday =cd.getTime();
     61         SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
     62         String preMonday = df.format(monday);
     63         return preMonday ;
     64         } 
     65     
     66     //获得当周第几天,返回日期形。i=0表示星期一
     67     public static Date getNowWeekBeginDate(Date date,int i) {
     68         Calendar cd = Calendar.getInstance();
     69         cd.setTime(date);
     70         cd.set(Calendar.DAY_OF_WEEK, Calendar.MONTH +i);
     71         if(i==6){
     72          cd.set(Calendar.DAY_OF_WEEK, Calendar.MONTH+5);
     73          cd.add(cd.DATE, 1); 
     74         }
     75         Date  monday =cd.getTime();
     76         return monday ;
     77         } 
     78     //获得本周日期
     79     public static List<String> getDaysOfWeek(Date date){
     80         List<String> days = new ArrayList<String>();
     81         for (int i = 0; i < 7; i++) {
     82             days.add(getNowWeekBegin(date,i));
     83         }
     84         return days;
     85     }
     86     //获得本周日期
     87     public static List<Date> getDaysOfWeekDate(Date date){
     88         List<Date> days = new ArrayList<Date>();
     89         for (int i = 0; i < 7; i++) {
     90             days.add(getNowWeekBeginDate(date,i));
     91         }
     92         return days;
     93     }
     94     
     95     /**
     96      * 获得当月第几周
     97      * @param date
     98      * @param week
     99      * @return
    100      */
    101     public static List<String> getWeeksOfMonth(Date date,int week){
    102         int day =7*week+1;
    103         Calendar c = Calendar.getInstance();
    104         c.setTime(date);
    105         c.set(Calendar.DAY_OF_MONTH, day);
    106         return getDaysOfWeek(c.getTime());
    107     }
    108   
    109     //本月最后一天
    110     public static Date getDateOfLastDayOfMonth(Date date){
    111         Calendar c = Calendar.getInstance();
    112         c.setTime(date);
    113         c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DATE));
    114         return c.getTime();
    115     }
    116     //获得本月第几天,0表示第一天
    117    public static Date getDayOfMonth(Date date,int i){
    118        Calendar c = Calendar.getInstance();
    119            c.setTime(date);
    120            c.set(Calendar.DAY_OF_MONTH, i+1);
    121        return c.getTime();
    122    }
    123     //本月共几周
    124     public static int getWeekyofMonth(Date date){
    125         Date d1 = getFirstDayOfMonth(date);//第一天
    126         Date d2 = getDateOfLastDayOfMonth(date);//最后一天
    127         Date mon1 =getNowWeekBeginDate(d1,0);//第一天所在周星期一
    128         Date mon2 =getNowWeekBeginDate(d2,0);//最后一天所在周星期一
    129         return (int) ((mon2.getTime()-mon1.getTime())/3600/24/1000)/7;
    130     }
    131    public static List<String> getWeekName(){
    132        List<String> list = new ArrayList<String>();
    133        list.add("周一");
    134        list.add("周二");
    135        list.add("周三");
    136        list.add("周四");
    137        list.add("周五");
    138        list.add("周六");
    139        list.add("周日");
    140        return list;
    141        
    142    }
    143    /**
    144     * 首先获得 定一个时间,就2014-07-14为单周
    145     * 然后获得传过来日期的星期一与这个时间除以7.
    146     * 然后结果除以2,如果余数是0,这是单周,否则是双周
    147     * @param date
    148     * @return
    149     */
    150  public static String getDanShuangWeek(Date date){
    151     Date beginDate =StringToDate("2014-07-14");
    152     Date nowDate =getNowWeekBeginDate(date,0); 
    153     int temp = (int) ((nowDate.getTime() -beginDate.getTime())/3600/24/1000);
    154     int danshuang=temp%2;
    155     String str=null;
    156     if(danshuang==0){
    157         str="单周";
    158     }else{
    159         str="双周";
    160     }
    161      return str;
    162  }
    163  
    164  public static int getDanShuangWeekInt(Date date){
    165         Date beginDate =StringToDate("2014-07-14");
    166         
    167         Date nowDate =getNowWeekBeginDate(date,0); 
    168         int temp = (int) ((nowDate.getTime() -beginDate.getTime())/3600/24/1000);
    169         int danshuang=temp%2;
    170          return danshuang;
    171      }
    172  
    173  public static Date StringToDate(String strDate){
    174      SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
    175      Date date =null;
    176      try {
    177           date = df.parse(strDate);
    178     } catch (ParseException e) {
    179         // TODO Auto-generated catch block
    180         e.printStackTrace();
    181     }
    182      return date;
    183  }
    184  
    185  public static Date DateToDate(Date date){
    186      SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
    187      String strDate= df.format(date);
    188      return StringToDate(strDate);
    189  }
    190  
    191  public static void main(String[] args) {
    192 //    System.out.println(getDanShuangWeek(StringToDate("2014-08-02"))); ;
    193     // System.out.println(getDayOfMonth(new Date(),10));
    194      System.out.println(DateToDate(new Date()));
    195 }
    196 }
  • 相关阅读:
    【树状数组·进阶篇】树状数组实现平衡树(树状数组上二分)
    【$Polya$定理·应用篇】$Polya$定理的几种模型简介
    【博弈论·入门篇】$SG$函数基础入门
    关于win10安装CPC专利软件以及win10安装office2003
    部署react项目到服务器,配置nginx的伪静态
    中等 39. 组合总和 (递归,去除数组中重复的元素)
    jsonp策略,cors响应头,实现跨域
    文档-关于这次参加比赛写文档的总结
    前端-关于这次暑假的和大家一起做项目的总结
    servlet获取前台数据或者返回前台数据乱码的问题
  • 原文地址:https://www.cnblogs.com/w8104254/p/3855858.html
Copyright © 2020-2023  润新知