zoukankan      html  css  js  c++  java
  • 日期工具(记录一下方便日后工作使用)

      1 /**
      2  * 说明: 取日期时间工具
      3  */
      4 public class DateUtil {
      5 
      6     public DateUtil() {
      7     }
      8 
      9     /**
     10      * @see 把字符串时间转换成 Date
     11      * @return String
     12      * @throws ParseException
     13      */
     14     public static synchronized Date parseStringToDate(String myDate, String strFormat)
     15             throws ParseException {
     16         try {
     17             SimpleDateFormat sdf = new SimpleDateFormat(strFormat);
     18             return sdf.parse(myDate);
     19         } catch (Exception e) {
     20             return null;
     21         }
     22     }
     23 
     24     public static String parseDateToString(Date date, String strFormat) {
     25         try {
     26             SimpleDateFormat sdf = new SimpleDateFormat(strFormat);
     27             return sdf.format(date);
     28         } catch (Exception e) {
     29             return "";
     30         }
     31     }
     32 
     33     /**
     34      * 判断是否是闰年 详细设计: 1.被400整除是闰年,否则: 2.不能被4整除则不是闰年 3.能被4整除同时不能被100整除则是闰年
     35      * 3.能被4整除同时能被100整除则不是闰年
     36      */
     37     private static synchronized boolean isLeapYear(int year) {
     38         if ((year % 400) == 0)
     39             return true;
     40         else if ((year % 4) == 0) {
     41             if ((year % 100) == 0)
     42                 return false;
     43             else
     44                 return true;
     45         } else
     46             return false;
     47     }
     48 
     49     /**
     50      * 取得指定日期的所处月份的最后一天
     51      *
     52      * @param date
     53      *            指定日期。
     54      * @return 指定日期的所处月份的最后一天
     55      */
     56     public static synchronized int getLastDayOfMonth(int year, int month) {
     57         /** */
     58         /**
     59          * 详细设计: 1.如果date在1月,则为31日 2.如果date在2月,则为28日 3.如果date在3月,则为31日
     60          * 4.如果date在4月,则为30日 5.如果date在5月,则为31日 6.如果date在6月,则为30日
     61          * 7.如果date在7月,则为31日 8.如果date在8月,则为31日 9.如果date在9月,则为30日
     62          * 10.如果date在10月,则为31日 11.如果date在11月,则为30日 12.如果date在12月,则为31日
     63          * 1.如果date在闰年的2月,则为29日
     64          */
     65         int day = 0;
     66         switch (month) {
     67         case 1:
     68             day = 31;
     69             break;
     70         case 2:
     71             day = 28;
     72             break;
     73         case 3:
     74             day = 31;
     75             break;
     76         case 4:
     77             day = 30;
     78             break;
     79         case 5:
     80             day = 31;
     81             break;
     82         case 6:
     83             day = 30;
     84             break;
     85         case 7:
     86             day = 31;
     87             break;
     88         case 8:
     89             day = 31;
     90             break;
     91         case 9:
     92             day = 30;
     93             break;
     94         case 10:
     95             day = 31;
     96             break;
     97         case 11:
     98             day = 30;
     99             break;
    100         case 12:
    101             day = 31;
    102             break;
    103         }
    104         // 检查闰年
    105         if (month == 2 && (isLeapYear(year))) {
    106             day = 29;
    107         }
    108         return day;
    109     }
    110     
    111     /**
    112      * 获取指定时间是星期几
    113      * @param year
    114      * @param month
    115      * @param day
    116      * @return
    117      */
    118     public static int getWeek(int year,int month,int day){
    119         Calendar c = Calendar.getInstance();
    120         c.set(c.YEAR,year);  
    121         c.set(c.MONTH,month-1);
    122         c.set(c.DAY_OF_MONTH,day);
    123         return c.get(Calendar.DAY_OF_WEEK) - 1;
    124     }
    125     
    126     public static int getTotalWeek(int year,int month,int day){
    127         Calendar c = Calendar.getInstance();
    128         c.set(c.YEAR,year);  
    129         c.set(c.MONTH,month-1);
    130         c.set(c.DAY_OF_MONTH,day);
    131         
    132         int week = c.get(Calendar.WEEK_OF_MONTH);//获取是本月的第几周
    133         return week;
    134     }
    135 }

     判断是否是闰年 详细设计: 1.被400整除是闰年,否则: 2.不能被4整除则不是闰年 3.能被4整除同时不能被100整除则是闰年
     3.能被4整除同时能被100整除则不是闰年

     详细设计: 1.如果date在1月,则为31日 2.如果date在2月,则为28日 3.如果date在3月,则为31日
             4.如果date在4月,则为30日 5.如果date在5月,则为31日 6.如果date在6月,则为30日
             7.如果date在7月,则为31日 8.如果date在8月,则为31日 9.如果date在9月,则为30日
             10.如果date在10月,则为31日 11.如果date在11月,则为30日 12.如果date在12月,则为31日
             1.如果date在闰年的2月,则为29日

  • 相关阅读:
    分享一个小故事
    思维局限
    java程序员笑不死的经历ส้้้้้้้้้
    一些话
    定位 java虚拟机内存问题 个人总结
    关于分布式事务、两阶段提交协议、三阶提交协议(转)
    maven常用配置信息和常量
    Mybatis-常见SQL语句示例
    Redis主从同步原理-SYNC
    B+树在mysql数据库索引中的使用
  • 原文地址:https://www.cnblogs.com/itworkers/p/6409438.html
Copyright © 2011-2022 走看看