zoukankan      html  css  js  c++  java
  • 16、根据年月日获取周几 以及整理的日期常用的工具类

     1   /**
     2      * @param year
     3      * @param month
     4      * @param day
     5      * @return
     6      */
     7     public static String CaculateWeekDay(int y,int m,int d)
     8     {
     9         
    10             String strDate = y+"-"+m+"-"+d;// 定义日期字符串  
    11         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");// 定义日期格式  
    12         Date date = null;  
    13         try {  
    14             date = format.parse(strDate);// 将字符串转换为日期  
    15         }catch (ParseException e) {  
    16             }  
    17         Calendar c = Calendar.getInstance();
    18         c.setTime(date);
    19         int dayForWeek = 0;  
    20         if(c.get(Calendar.DAY_OF_WEEK) == 1){  
    21          dayForWeek = 7;  
    22         }else{  
    23          dayForWeek = c.get(Calendar.DAY_OF_WEEK) - 1;  
    24         }  
            String day = "";
            switch (dayFotWeek)
            {
              case 0:day = "周日";break;
              case 1:day = "周一";break;  
              case 2:day = "周二";break;
              case 3:day = "周三";break;
              case 4:day = "周四";break;
              case 5:day = "周五";break;
              case 6:day = "周六";break;
             }
    25         return day; 
    26         
    27     }
    使用案例:  CaculateWeekDay(2015,3,2)得到的便是“周一”;

    个人使用的日期工具类分享给大家:

      1     /**
      2      * 根据年月日,获取是周几
      3      * @param year
      4      * @param month
      5      * @param day
      6      * @return
      7      */
      8     public static String CaculateWeekDay(int y,int m,int d)
      9     {
     10         
     11             String strDate = y+"-"+m+"-"+d;// 定义日期字符串  
     12         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");// 定义日期格式  
     13         Date date = null;  
     14         try {  
     15             date = format.parse(strDate);// 将字符串转换为日期  
     16         }catch (ParseException e) {  
     17             }  
     18         Calendar c = Calendar.getInstance();
     19         c.setTime(date);
     20         int dayForWeek = 0;  
     21         if(c.get(Calendar.DAY_OF_WEEK) == 1){  
     22          dayForWeek = 7;  
     23         }else{  
     24          dayForWeek = c.get(Calendar.DAY_OF_WEEK) - 1;  
     25         }  
     26         return Integer.toString(dayForWeek); 
     27         
     28     }
     29 
     30     
     31     /**
     32      * 获取今日的日期,举例:20141110,20140110
     33      * @return,日期的字符串
     34      */
     35     public static  String getNowDateString()
     36     {
     37         Date date = new Date();
     38         //年份
     39         int year = date.getYear() + 1900;
     40         //月份
     41         int month = date.getMonth() + 1;
     42         //日期
     43         int day = date.getDate();
     44         
     45         String date_string ;
     46         if(month < 10)
     47         {
     48                 if(day < 10)
     49                 {
     50                     date_string = Integer.toString(year)+"0"+Integer.toString(month)+"0"+Integer.toString(day);    
     51                 }
     52                 else
     53                 {
     54                     date_string = Integer.toString(year)+"0"+Integer.toString(month)+Integer.toString(day);
     55                 }
     56                 
     57         }
     58         else
     59         {
     60                 if(day < 10)
     61                 {
     62                     date_string = Integer.toString(year)+Integer.toString(month)+"0"+Integer.toString(day);    
     63                 }
     64                 else
     65                 {
     66                     date_string = Integer.toString(year)+Integer.toString(month)+Integer.toString(day);
     67                 }
     68                 
     69         }
     70         return date_string;
     71     }
     72     
     73     
     74     /**
     75      * 获取今日包含时间点的日期,举例:2014020202(2014年2月2号2点)
     76      * @return,日期的字符串
     77      */
     78     public static  String getNowDateAndHourString()
     79     {
     80         
     81         String date_string ;
     82         String month_str;
     83         String day_str;
     84         String hour_str;
     85         
     86         Date date = new Date();
     87         //年份
     88         int year = date.getYear() + 1900;
     89         //月份
     90         int month = date.getMonth() + 1;
     91         //日期
     92         int day = date.getDate();
     93         //时间
     94         int hour = date.getHours();
     95         
     96         //处理月份
     97         if(month < 10)
     98         {
     99                 month_str=0+Integer.toString(month);
    100         }
    101         else
    102         {
    103                 month_str=Integer.toString(month);
    104         }
    105 
    106         //处理日期
    107         if(day < 10)
    108         {
    109                 day_str=0+Integer.toString(day);
    110         }
    111         else
    112         {
    113                 day_str=Integer.toString(day);
    114         }
    115 
    116         //处理时间
    117         if(hour < 10)
    118         {
    119                 hour_str=0+Integer.toString(hour);
    120         }
    121         else
    122         {
    123                 hour_str=Integer.toString(hour);
    124         }
    125         
    126         date_string = year+month_str+day_str+hour_str;
    127         return date_string;
    128     }
    129     
    130 
    131     /**
    132      * 函数功能是根据当前的日期,当step为正数时,算出加上step后的日期;step为负数时,算出减去step后的日期
    133      * @param step:要加或者减的天数
    134      * @return :在当前日期的基础上加上或者减去step后的日期
    135      */
    136     public static  String getDate(int step) {
    137                   Calendar cal = Calendar.getInstance();
    138                   cal.add(Calendar.DATE, step);
    139                   SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");
    140                  
    141                   String str = sf.format(cal.getTime());
    142                  
    143                   System.out.print(str);
    144                   return str;
    145            }
    146     
    147     
    148     /**
    149      *根据距离今天的日期差,得到是第几周周几:举例说今天是本年的第三周周四,那么getWeek(1)得到便是"第三周>周五"
    150      * @param step
    151      * @return
    152      */
    153     public static String getWeek(int step)
    154     {
    155         Calendar cal = Calendar.getInstance();
    156         cal.add(Calendar.DATE, step);
    157         
    158         int week = cal.get(cal.WEEK_OF_YEAR);
    159         int day = cal.get(cal.DAY_OF_WEEK);
    160         
    161         if(day == 1)
    162         {
    163                 week = week -1;
    164         }
    165         day = day-1;
    166         
    167         String [] day_of_week = {"日","一","二","三","四","五","六","日"};
    168         
    169         if(week == 0)
    170         {
    171                 return "周"+day_of_week[day];
    172         }
    173         
    174         String str = "第"+week+"周"+">周"+day_of_week[day];
    175         CommonUtils.LogWuwei(tag, "getWeek week is "+str+"day is "+day);
    176         return str;
    177     }
    178     
    179     
    180     /**
    181      * 根据距离今天的日期差,得到是周几:举例说今天是周二,那么getWeekDay(-1)得到的便是“周一”
    182      * @param step
    183      * @return
    184      */
    185     public static String getWeekDay(int step)
    186     {
    187         Calendar cal = Calendar.getInstance();
    188         cal.add(Calendar.DATE, step);
    189         
    190         int week = cal.get(cal.WEEK_OF_YEAR);
    191         int day = cal.get(cal.DAY_OF_WEEK);
    192         
    193         if(day == 1)
    194         {
    195                 week = week -1;
    196         }
    197         day = day-1;
    198         
    199         String [] day_of_week = {"日","一","二","三","四","五","六","日"};
    200         
    201             return "周"+day_of_week[day];
    202         
    203     }
    204     
    205 
    206      /**
    207     * 获取当前日期是星期几<br>
    208     * 
    209     * @param dt
    210     * @return 当前日期是星期几
    211     */
    212     public static String getWeekOfDate() {
    213               Date date=new Date();
    214             SimpleDateFormat dateFm = new SimpleDateFormat("EEEE");
    215             dateFm.format(date);
    216             
    217            String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
    218            Calendar cal = Calendar.getInstance();
    219            cal.setTime(date);
    220            int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
    221            if (w < 0)
    222                w = 0;
    223            CommonUtils.LogWuwei(tag,"今天是 "+weekDays[w]);
    224            return weekDays[w];
    225    }
    226     
    227     
    228     /**
    229      * 根据日期获取时间戳
    230      * @param normalDate 20141228
    231      * @return  1419696000
    232      */
    233     public static long getTimeStamp(Long normalDate)
    234     {
    235         Long detail_date_tmp = normalDate;
    236         String date_str = Long.toString(detail_date_tmp);
    237         String year = date_str.substring(0, 4);
    238         String month = date_str.substring(4, 6);
    239         String day = date_str.substring(6, 8);
    240         //CommonUtils.LogWuwei(tag,"detail_date_tmp is "+detail_date_tmp+" "+ year+":"+month+":"+day);
    241         
    242         SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
    243         Date date;
    244         Calendar cal= Calendar.getInstance();
    245         String parseStr = year+"-"+month+"-"+day;
    246         
    247         try {
    248             date = df.parse(parseStr);
    249             cal = Calendar.getInstance();
    250                 cal.setTime(date);
    251         } catch (ParseException e) {
    252             // TODO Auto-generated catch block
    253             e.printStackTrace();
    254         }
    255         
    256         long timeStamp = cal.getTimeInMillis()/1000;
    257         
    258         CommonUtils.LogWuwei(tag, "timeStamp is "+timeStamp);
    259         
    260         return timeStamp;
    261     }
    262     
    263     
    264     /**
    265      * 将”20141224” 解析成“2014年12月24日”
    266      * @param date
    267      * @return
    268      */
    269     public static String parseDate(Long date)
    270     {
    271         int year = (int)(date/10000);
    272         int month = (int)(date%10000)/100;
    273         int day = (int)(date%10000)%100;
    274         return year+"年"+month+"月"+day+"日";
    275         
    276     }
    277     
    278     
    279      /**
    280         * 获取当前日期是星期几<br>
    281         * 
    282         * @param dt
    283         * @return 当前日期是星期几
    284         */
    285         public static int getIntWeekOfDate() {
    286                   Date date=new Date();
    287                 SimpleDateFormat dateFm = new SimpleDateFormat("EEEE");
    288                 dateFm.format(date);
    289                
    290                int[] weekDays = {7,1,2,3,4,5,6};
    291                    Calendar cal = Calendar.getInstance();
    292                cal.setTime(date);
    293                int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
    294                if (w < 0)
    295                    w = 0;
    296             //   CommonUtils.LogWuwei(tag,"今天是 "+weekDays[w]);
    297                return weekDays[w];
    298        }
    299         
    300         /**
    301          * 根据今天是周几获取上周周一到周日的日期
    302          */
    303         public static String[] getLastWeekDate()
    304         {
    305             int today = CommonUtils.getIntWeekOfDate();//获取今天周几
    306             String baseDate = "";//初始化上周一的日期
    307             String date[] = {null,null,null,null,null,null,null};
    308             int index = 0;
    309             switch (today)////得到上周一的日期
    310             {
    311             case 1:
    312                 baseDate = CommonUtils.getDate(-7);
    313                 index = -7;
    314                 break;
    315             case 2:
    316                 baseDate = CommonUtils.getDate(-8);
    317                 index = -8;
    318                 break;
    319             case 3:
    320                 baseDate = CommonUtils.getDate(-9);
    321                 index = -9;
    322                 break;
    323             case 4:
    324                 baseDate = CommonUtils.getDate(-10);
    325                 index = -10;
    326                 break;
    327             case 5:
    328                 baseDate = CommonUtils.getDate(-11);
    329                 index = -11;
    330                 break;
    331             case 6:
    332                 baseDate = CommonUtils.getDate(-12);
    333                 index = -12;
    334                 break;
    335             case 7:
    336                 baseDate = CommonUtils.getDate(-13);
    337                 index = -13;
    338                 break;
    339             }
    340             
    341             for(int i=0;i<7;i++)
    342             {
    343                 date[i] = CommonUtils.getDate(index+i);
    344                 int k = i+1;
    345                 CommonUtils.LogWuwei(tag,"上周"+k+" is "+date[i]);
    346             }
    347             return date;
    348         }
    349         
    350         /**
    351          * 根据本周周一到周日的日期
    352          */
    353         public static String[] getThisWeekDate()
    354         {
    355             int today = CommonUtils.getIntWeekOfDate();//获取今天周几
    356             String date[] = {null,null,null,null,null,null,null};
    357             int index = 0;
    358             switch (today)////得到上周一的日期
    359             {
    360             case 1:
    361                 index = 0;
    362                 break;
    363             case 2:
    364                 index = -1;
    365                 break;
    366             case 3:
    367                 index = -2;
    368                 break;
    369             case 4:
    370                 index = -3;
    371                 break;
    372             case 5:
    373                 index = -4;
    374                 break;
    375             case 6:
    376                 index = -5;
    377                 break;
    378             case 7:
    379                 index = -6;
    380                 break;
    381             }
    382             
    383             for(int i=0;i<7;i++)
    384             {
    385                 date[i] = CommonUtils.getDate(index+i);
    386                 int k = i+1;
    387                 CommonUtils.LogWuwei(tag,"本周"+k+" is "+date[i]);
    388             }
    389             return date;
    390         }
    391         
    392         
    393         /**
    394          * 获取下周周一到周日的日期
    395          */
    396         public static String[] getNextWeekDate()
    397         {
    398             int today = CommonUtils.getIntWeekOfDate();//获取今天周几
    399             String date[] = {null,null,null,null,null,null,null};
    400             int index = 0;
    401             switch (today)////得到下周的日期
    402             {
    403             case 1:
    404                 index = 7;
    405                 break;
    406             case 2:
    407                 index = 6;
    408                 break;
    409             case 3:
    410                 index = 5;
    411                 break;
    412             case 4:
    413                 index = 4;
    414                 break;
    415             case 5:
    416                 index = 3;
    417                 break;
    418             case 6:
    419                 index = 2;
    420                 break;
    421             case 7:
    422                 index = 1;
    423                 break;
    424             }
    425             
    426             for(int i=0;i<7;i++)
    427             {
    428                 date[i] = CommonUtils.getDate(index+i);
    429                 int k = i+1;
    430                 CommonUtils.LogWuwei(tag,"下周"+k+" is "+date[i]);
    431             }
    432             return date;
    433         }
    434 
    435         
    436         /**
    437          * 从今天起往前寻找8周内每个周一的日期
    438          */
    439         public static long[] checkRecentEfficientDataFromToday()
    440         {
    441             long modayData[] = new long[8];
    442             int today = getIntWeekOfDate();//获取今天是周几
    443             int step = 0;
    444             switch (today)
    445             {
    446             case 1:
    447                 step = 0;
    448                 break;
    449             case 2:
    450                 step = -1;
    451                 break;
    452             case 3:
    453                 step = -2;
    454                 break;
    455             case 4:
    456                 step = -3;
    457                 break;
    458             case 5:
    459                 step = -4;
    460                 break;
    461             case 6:
    462                 step = -5;
    463                 break;
    464             case 7:
    465                 step = -6;
    466                 break;
    467             }
    468             
    469             for(int i=0;i<8;i++)
    470             {
    471                 modayData[i] = Long.parseLong(getDate(step-7*i));
    472                 CommonUtils.LogWuwei(tag, "monday date is "+modayData[i]);
    473             }
    474             return modayData;
    475         }
    476         
    477         /**
    478          * 获取到本周一的日期
    479          * @return
    480          */
    481         public static long getThisMonday()
    482         {
    483             int today = getIntWeekOfDate();//获取今天是周几
    484             long monday = (long)0;
    485             int step = 0;
    486             switch (today)
    487             {
    488             case 1:
    489                 step = 0;
    490                 break;
    491             case 2:
    492                 step = -1;
    493                 break;
    494             case 3:
    495                 step = -2;
    496                 break;
    497             case 4:
    498                 step = -3;
    499                 break;
    500             case 5:
    501                 step = -4;
    502                 break;
    503             case 6:
    504                 step = -5;
    505                 break;
    506             case 7:
    507                 step = -6;
    508                 break;
    509             }
    510             monday = Long.parseLong(getNowDateString())+step;
    511             return monday;
    512         }
    513         
    514         /**
    515          * 获取到上周的周一是几号
    516          * @return
    517          */
    518         public static long getLastMonday()
    519         {
    520             int today = getIntWeekOfDate();//获取今天是周几
    521             long monday = (long)0;
    522             int step = 0;
    523             switch (today)
    524             {
    525             case 1:
    526                 step = 0;
    527                 break;
    528             case 2:
    529                 step = -1;
    530                 break;
    531             case 3:
    532                 step = -2;
    533                 break;
    534             case 4:
    535                 step = -3;
    536                 break;
    537             case 5:
    538                 step = -4;
    539                 break;
    540             case 6:
    541                 step = -5;
    542                 break;
    543             case 7:
    544                 step = -6;
    545                 break;
    546             }
    547             monday = Long.parseLong(getNowDateString())-7+step;
    548             return monday;
    549         }
    550         
    551         /**
    552          * 获取到下周的周一是几号
    553          * @return
    554          */
    555         public static long getNextMonday()
    556         {
    557             int today = getIntWeekOfDate();//获取今天是周几
    558             long monday = (long)0;
    559             int step = 0;
    560             switch (today)
    561             {
    562             case 1:
    563                 step = 0;
    564                 break;
    565             case 2:
    566                 step = -1;
    567                 break;
    568             case 3:
    569                 step = -2;
    570                 break;
    571             case 4:
    572                 step = -3;
    573                 break;
    574             case 5:
    575                 step = -4;
    576                 break;
    577             case 6:
    578                 step = -5;
    579                 break;
    580             case 7:
    581                 step = -6;
    582                 break;
    583             }
    584             monday = Long.parseLong(getNowDateString())+7+step;
    585             return monday;
    586         }
    587         
    View Code


  • 相关阅读:
    小程序云函数 Error: errCode: -404011 cloud function execution error
    Fiddler+雷电模拟器进行APP抓包
    Vue优化常用技巧
    sftp常用命令整理
    React生命周期学习整理
    git 提交跳过检查
    漂亮的代码系列
    关于我系列
    架构系列
    深度学习系列
  • 原文地址:https://www.cnblogs.com/kunyashaw/p/4308557.html
Copyright © 2011-2022 走看看