posts - 14,comments - 11,trackbacks - 0

            取一個月的最后一天,一個非常愚蠢的方法:
                           Calendar MonthEnd=Calendar.getInstance();
                           MonthEnd.clear(); 
                           MonthEnd.set(Calendar.YEAR, Integer.parseInt(year));
                           MonthEnd.set(Calendar.MONTH,Integer.parseInt(month));   
             //寫本月的數字實際上返回的是下個月
                           MonthEnd.set(Calendar.DATE,1);                 //設置成下月的第一天
                           MonthEnd.add(Calendar.DATE,-1);              //再減掉一天
                           int end=MonthEnd.get(Calendar.DAY_OF_MONTH);    //就是這個月的最后一天了
           
            Calendar原來就有這么一種方法:
                           Calendar MonthEnd=Calendar.getInstance();
                           MonthEnd.clear(); 
                           MonthEnd.set(Calendar.YEAR, Integer.parseInt(year));
                           MonthEnd.set(Calendar.MONTH,Integer.parseInt(month)-1);
                           int end=MonthEnd.getActualMaximum(MonthEnd.DAY_OF_MONTH);   //直接得就OK
                           //也可以取一個月的最小一天
                           int first=MonthEnd.getActualMinimum(MonthEnd.DAY_OF_MONTH);

           

          示例:

           

          import java.util.Calendar;
          import java.sql.Date;
          import java.text.SimpleDateFormat;
          import java.text.ParseException;

          public class DateTimeUtil {

           /**
            * 由java.util.Date到java.sql.Date的類型轉換
            *
            * @param date
            * @return Date
            */
           public static Date getSqlDate(java.util.Date date) {
            return new Date(date.getTime());
           }

           public static Date nowDate() {
            Calendar calendar = Calendar.getInstance();
            return getSqlDate(calendar.getTime());
           }

           /**
            * 獲得某一日期的后一天
            *
            * @param date
            * @return Date
            */
           public static Date getNextDate(Date date) {
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            int day = calendar.get(Calendar.DATE);
            calendar.set(Calendar.DATE, day + 1);
            return getSqlDate(calendar.getTime());
           }

           /**
            * 獲得某一日期的前一天
            *
            * @param date
            * @return Date
            */
           public static Date getPreviousDate(Date date) {
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            int day = calendar.get(Calendar.DATE);
            calendar.set(Calendar.DATE, day - 1);
            return getSqlDate(calendar.getTime());
           }

           /**
            * 獲得某年某月第一天的日期
            *
            * @param year
            * @param month
            * @return Date
            */
           public static Date getFirstDayOfMonth(int year, int month) {
            Calendar calendar = Calendar.getInstance();
            calendar.set(Calendar.YEAR, year);
            calendar.set(Calendar.MONTH, month - 1);
            calendar.set(Calendar.DATE, 1);
            return getSqlDate(calendar.getTime());
           }

           /**
            * 獲得某年某月最后一天的日期
            *
            * @param year
            * @param month
            * @return Date
            */
           public static Date getLastDayOfMonth(int year, int month) {
            Calendar calendar = Calendar.getInstance();
            calendar.set(Calendar.YEAR, year);
            calendar.set(Calendar.MONTH, month);
            calendar.set(Calendar.DATE, 1);
            return getPreviousDate(getSqlDate(calendar.getTime()));
           }

           /**
            * 由年月日構建java.sql.Date類型
            *
            * @param year
            * @param month
            * @param date
            * @return Date
            */
           public static Date buildDate(int year, int month, int date) {
            Calendar calendar = Calendar.getInstance();
            calendar.set(year, month - 1, date);
            return getSqlDate(calendar.getTime());
           }

           /**
            * 取得某月的天數
            *
            * @param year
            * @param month
            * @return int
            */
           public static int getDayCountOfMonth(int year, int month) {
            Calendar calendar = Calendar.getInstance();
            calendar.set(Calendar.YEAR, year);
            calendar.set(Calendar.MONTH, month);
            calendar.set(Calendar.DATE, 0);
            return calendar.get(Calendar.DATE);
           }

           /**
            * 獲得某年某季度的最后一天的日期
            *
            * @param year
            * @param quarter
            * @return Date
            */
           public static Date getLastDayOfQuarter(int year, int quarter) {
            int month = 0;
            if (quarter > 4) {
             return null;
            } else {
             month = quarter * 3;
            }
            return getLastDayOfMonth(year, month);

           }

           /**
            * 獲得某年某季度的第一天的日期
            *
            * @param year
            * @param quarter
            * @return Date
            */
           public static Date getFirstDayOfQuarter(int year, int quarter) {
            int month = 0;
            if (quarter > 4) {
             return null;
            } else {
             month = (quarter - 1) * 3 + 1;
            }
            return getFirstDayOfMonth(year, month);
           }

           /**
            * 獲得某年的第一天的日期
            *
            * @param year
            * @return Date
            */
           public static Date getFirstDayOfYear(int year) {
            return getFirstDayOfMonth(year, 1);
           }

           /**
            * 獲得某年的最后一天的日期
            *
            * @param year
            * @return Date
            */
           public static Date getLastDayOfYear(int year) {
            return getLastDayOfMonth(year, 12);
           }

           /**
            * String到java.sql.Date的類型轉換
            *
            * @param param
            * @return Date
            */
           public static java.sql.Date StringToDate(String param) {

            if (param.equals(null)) {

             return null;
            
            } else {
             java.util.Date date = null;
             try {
              SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
              date = sdf.parse(param);
              return new Date(date.getTime());
             } catch (ParseException ex) {
              // ex.printStackTrace();
              return null;
             }
            }
           }
          }

           


          本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/shazhenzhong/archive/2008/09/23/2968501.aspx

          posted on 2009-06-12 10:45 阿丁 閱讀(1799) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 南和县| 九龙城区| 昌黎县| 习水县| 贡嘎县| 苏州市| 临桂县| 杨浦区| 高安市| 柘城县| 开远市| 镇雄县| 内丘县| 临沂市| 无为县| 红桥区| 大兴区| 阳城县| 邓州市| 麻城市| 新建县| 莆田市| 新竹县| 黄浦区| 五大连池市| 郓城县| 延庆县| 施甸县| 上杭县| 丹凤县| 郯城县| 峨眉山市| 通化市| 大竹县| 喀喇沁旗| 宜宾县| 喜德县| 瑞丽市| 台南县| 镇原县| 衢州市|