`

日历封装类

    博客分类:
  • java
 
阅读更多
  1. package  com.iwode.common;  
  2.   
  3. import  java.text.DateFormat;  
  4. import  java.text.ParsePosition;  
  5. import  java.text.SimpleDateFormat;  
  6. import  java.util.Calendar;  
  7. import  java.util.Date;  
  8. import  java.util.GregorianCalendar;  
  9.   
  10. /**  
  11.  * 常用日历操作辅助类  
  12.  * @author steven 2010-08-10  
  13.  * @email:qing.tan@iwode.com  
  14.  */   
  15. public   class  CalendarUtil {  
  16.   
  17.     // 用来全局控制 上一周,本周,下一周的周数变化   
  18.     private   int  weeks =  0 ;  
  19.     private   int  MaxDate; // 一月最大天数   
  20.     private   int  MaxYear; // 一年最大天数   
  21.     private   static  Calendar calendar = Calendar.getInstance(); //实例化日历   
  22.   
  23.     /**测试  
  24.      * @param args  
  25.      */   
  26.     public   static   void  main(String[] args) {  
  27.         CalendarUtil tt = new  CalendarUtil();  
  28.         System.out.println("获取当天日期:"  + tt.getNowTime( "yyyy-MM-dd" ));  
  29.         System.out.println("获取本周一日期:"  + tt.getMondayOFWeek());  
  30.         System.out.println("获取本周日的日期~:"  + tt.getCurrentWeekday());  
  31.         System.out.println("获取上周一日期:"  + tt.getPreviousWeekday());  
  32.         System.out.println("获取上周日日期:"  + tt.getPreviousWeekSunday());  
  33.         System.out.println("获取下周一日期:"  + tt.getNextMonday());  
  34.         System.out.println("获取下周日日期:"  + tt.getNextSunday());  
  35.         System.out.println("获得相应周的周六的日期:"  + tt.getNowTime( "yyyy-MM-dd" ));  
  36.         System.out.println("获取本月第一天日期:"  + tt.getFirstDayOfMonth());  
  37.         System.out.println("获取本月最后一天日期:"  + tt.getDefaultDay());  
  38.         System.out.println("获取上月第一天日期:"  + tt.getPreviousMonthFirst());  
  39.         System.out.println("获取上月最后一天的日期:"  + tt.getPreviousMonthEnd());  
  40.         System.out.println("获取下月第一天日期:"  + tt.getNextMonthFirst());  
  41.         System.out.println("获取下月最后一天日期:"  + tt.getNextMonthEnd());  
  42.         System.out.println("获取本年的第一天日期:"  + tt.getCurrentYearFirst());  
  43.         System.out.println("获取本年最后一天日期:"  + tt.getCurrentYearEnd());  
  44.         System.out.println("获取去年的第一天日期:"  + tt.getPreviousYearFirst());  
  45.         System.out.println("获取去年的最后一天日期:"  + tt.getPreviousYearEnd());  
  46.         System.out.println("获取明年第一天日期:"  + tt.getNextYearFirst());  
  47.         System.out.println("获取明年最后一天日期:"  + tt.getNextYearEnd());  
  48.         System.out.println("获取本季度第一天:"  + tt.getThisSeasonFirstTime( 11 ));  
  49.         System.out.println("获取本季度最后一天:"  + tt.getThisSeasonFinallyTime( 11 ));  
  50.         System.out.println("获取两个日期之间间隔天数2008-12-1~2008-9.29:"   
  51.                 + CalendarUtil.getTwoDay("2008-12-1" "2008-9-29" ));  
  52.         System.out.println("---------------->" );  
  53.         System.out.println("获取当前月的第几周:"  + tt.getWeekOfMonth());  
  54.         System.out.println("获取当前年份:"  + tt.getYear());  
  55.         System.out.println("获取当前月份:"  + tt.getMonth());  
  56.         System.out.println("获取今天在本年的第几天:"  + tt.getDayOfYear());  
  57.           
  58.         System.out.println("获得今天在本月的第几天(获得当前日):"  + tt.getDayOfMonth());  
  59.         System.out.println("获得今天在本周的第几天:"  + tt.getDayOfWeek());  
  60.         System.out.println("获得半年后的日期:"  + tt.convertDateToString(tt.getTimeYearNext()));  
  61.     }  
  62.   
  63.     /**  
  64.      * 获得当前年份  
  65.      *   
  66.      * @return  
  67.      */   
  68.     public   static   int  getYear() {  
  69.         return  calendar.get(Calendar.YEAR);  
  70.     }  
  71.   
  72.     /**  
  73.      * 获得当前月份  
  74.      *   
  75.      * @return  
  76.      */   
  77.     public   static   int  getMonth() {  
  78.         return  calendar.get(Calendar.MONTH) +  1 ;  
  79.     }  
  80.   
  81.     /**  
  82.      * 获得今天在本年的第几天  
  83.      *   
  84.      * @return  
  85.      */   
  86.     public   static   int  getDayOfYear() {  
  87.         return  calendar.get(Calendar.DAY_OF_YEAR);  
  88.     }  
  89.   
  90.     /**  
  91.      * 获得今天在本月的第几天(获得当前日)  
  92.      *   
  93.      * @return  
  94.      */   
  95.     public   static   int  getDayOfMonth() {  
  96.         return  calendar.get(Calendar.DAY_OF_MONTH);  
  97.     }  
  98.   
  99.     /**  
  100.      * 获得今天在本周的第几天  
  101.      *   
  102.      * @return  
  103.      */   
  104.     public   static   int  getDayOfWeek() {  
  105.         return  calendar.get(Calendar.DAY_OF_WEEK);  
  106.     }  
  107.   
  108.     /**  
  109.      * 获得今天是这个月的第几周  
  110.      *   
  111.      * @return  
  112.      */   
  113.     public   static   int  getWeekOfMonth() {  
  114.         return  calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH);  
  115.     }  
  116.   
  117.     /**  
  118.      * 获得半年后的日期  
  119.      *   
  120.      * @return  
  121.      */   
  122.     public   static  Date getTimeYearNext() {  
  123.         calendar.add(Calendar.DAY_OF_YEAR, 183 );  
  124.         return  calendar.getTime();  
  125.     }  
  126.       
  127.     public   static  String convertDateToString(Date dateTime){  
  128.         SimpleDateFormat df=new  SimpleDateFormat( "yyyy-MM-dd" );  
  129.         return  df.format(dateTime);  
  130.     }  
  131.       
  132.     /**  
  133.      * 得到二个日期间的间隔天数  
  134.      */   
  135.     public   static  String getTwoDay(String sj1, String sj2) {  
  136.         SimpleDateFormat myFormatter = new  SimpleDateFormat( "yyyy-MM-dd" );  
  137.         long  day =  0 ;  
  138.         try  {  
  139.             java.util.Date date = myFormatter.parse(sj1);  
  140.             java.util.Date mydate = myFormatter.parse(sj2);  
  141.             day = (date.getTime() - mydate.getTime()) / (24  *  60  *  60  *  1000 );  
  142.         } catch  (Exception e) {  
  143.             return   "" ;  
  144.         }  
  145.         return  day +  "" ;  
  146.     }  
  147.   
  148.     /**  
  149.      * 根据一个日期,返回是星期几的字符串  
  150.      *   
  151.      * @param sdate  
  152.      * @return  
  153.      */   
  154.     public   static  String getWeek(String sdate) {  
  155.         // 再转换为时间   
  156.         Date date = CalendarUtil.strToDate(sdate);  
  157.         Calendar c = Calendar.getInstance();  
  158.         c.setTime(date);  
  159.         // int hour=c.get(Calendar.DAY_OF_WEEK);   
  160.         // hour中存的就是星期几了,其范围 1~7   
  161.         // 1=星期日 7=星期六,其他类推   
  162.         return   new  SimpleDateFormat( "EEEE" ).format(c.getTime());  
  163.     }  
  164.   
  165.     /**  
  166.      * 将短时间格式字符串转换为时间 yyyy-MM-dd  
  167.      *   
  168.      * @param strDate  
  169.      * @return  
  170.      */   
  171.     public   static  Date strToDate(String strDate) {  
  172.         SimpleDateFormat formatter = new  SimpleDateFormat( "yyyy-MM-dd" );  
  173.         ParsePosition pos = new  ParsePosition( 0 );  
  174.         Date strtodate = formatter.parse(strDate, pos);  
  175.         return  strtodate;  
  176.     }  
  177.   
  178.     /**  
  179.      * 两个时间之间的天数  
  180.      *   
  181.      * @param date1  
  182.      * @param date2  
  183.      * @return  
  184.      */   
  185.     public   static   long  getDays(String date1, String date2) {  
  186.         if  (date1 ==  null  || date1.equals( "" ))  
  187.             return   0 ;  
  188.         if  (date2 ==  null  || date2.equals( "" ))  
  189.             return   0 ;  
  190.         // 转换为标准时间   
  191.         SimpleDateFormat myFormatter = new  SimpleDateFormat( "yyyy-MM-dd" );  
  192.         java.util.Date date = null ;  
  193.         java.util.Date mydate = null ;  
  194.         try  {  
  195.             date = myFormatter.parse(date1);  
  196.             mydate = myFormatter.parse(date2);  
  197.         } catch  (Exception e) {  
  198.         }  
  199.         long  day = (date.getTime() - mydate.getTime()) / ( 24  *  60  *  60  *  1000 );  
  200.         return  day;  
  201.     }  
  202.   
  203.     // 计算当月最后一天,返回字符串   
  204.     public  String getDefaultDay() {  
  205.         String str = "" ;  
  206.         SimpleDateFormat sdf = new  SimpleDateFormat( "yyyy-MM-dd" );  
  207.   
  208.         Calendar lastDate = Calendar.getInstance();  
  209.         lastDate.set(Calendar.DATE, 1 ); // 设为当前月的1号   
  210.         lastDate.add(Calendar.MONTH, 1 ); // 加一个月,变为下月的1号   
  211.         lastDate.add(Calendar.DATE, -1 ); // 减去一天,变为当月最后一天   
  212.   
  213.         str = sdf.format(lastDate.getTime());  
  214.         return  str;  
  215.     }  
  216.   
  217.     // 上月第一天   
  218.     public  String getPreviousMonthFirst() {  
  219.         String str = "" ;  
  220.         SimpleDateFormat sdf = new  SimpleDateFormat( "yyyy-MM-dd" );  
  221.   
  222.         Calendar lastDate = Calendar.getInstance();  
  223.         lastDate.set(Calendar.DATE, 1 ); // 设为当前月的1号   
  224.         lastDate.add(Calendar.MONTH, -1 ); // 减一个月,变为下月的1号   
  225.         // lastDate.add(Calendar.DATE,-1);//减去一天,变为当月最后一天   
  226.   
  227.         str = sdf.format(lastDate.getTime());  
  228.         return  str;  
  229.     }  
  230.   
  231.     // 获取当月第一天   
  232.     public  String getFirstDayOfMonth() {  
  233.         String str = "" ;  
  234.         SimpleDateFormat sdf = new  SimpleDateFormat( "yyyy-MM-dd" );  
  235.   
  236.         Calendar lastDate = Calendar.getInstance();  
  237.         lastDate.set(Calendar.DATE, 1 ); // 设为当前月的1号   
  238.         str = sdf.format(lastDate.getTime());  
  239.         return  str;  
  240.     }  
  241.   
  242.     // 获得本周星期日的日期   
  243.     public  String getCurrentWeekday() {  
  244.         weeks = 0 ;  
  245.         int  mondayPlus =  this .getMondayPlus();  
  246.         GregorianCalendar currentDate = new  GregorianCalendar();  
  247.         currentDate.add(GregorianCalendar.DATE, mondayPlus + 6 );  
  248.         Date monday = currentDate.getTime();  
  249.   
  250.         DateFormat df = DateFormat.getDateInstance();  
  251.         String preMonday = df.format(monday);  
  252.         return  preMonday;  
  253.     }  
  254.   
  255.     // 获取当天时间   
  256.     public  String getNowTime(String dateformat) {  
  257.         Date now = new  Date();  
  258.         SimpleDateFormat dateFormat = new  SimpleDateFormat(dateformat); // 可以方便地修改日期格式   
  259.         String hehe = dateFormat.format(now);  
  260.         return  hehe;  
  261.     }  
  262.   
  263.     // 获得当前日期与本周日相差的天数   
  264.     private   int  getMondayPlus() {  
  265.         Calendar cd = Calendar.getInstance();  
  266.         // 获得今天是一周的第几天,星期日是第一天,星期二是第二天......   
  267.         int  dayOfWeek = cd.get(Calendar.DAY_OF_WEEK) -  1 // 因为按中国礼拜一作为第一天所以这里减1   
  268.         if  (dayOfWeek ==  1 ) {  
  269.             return   0 ;  
  270.         } else  {  
  271.             return   1  - dayOfWeek;  
  272.         }  
  273.     }  
  274.   
  275.     // 获得本周一的日期   
  276.     public  String getMondayOFWeek() {  
  277.         weeks = 0 ;  
  278.         int  mondayPlus =  this .getMondayPlus();  
  279.         GregorianCalendar currentDate = new  GregorianCalendar();  
  280.         currentDate.add(GregorianCalendar.DATE, mondayPlus);  
  281.         Date monday = currentDate.getTime();  
  282.   
  283.         DateFormat df = DateFormat.getDateInstance();  
  284.         String preMonday = df.format(monday);  
  285.         return  preMonday;  
  286.     }  
  287.   
  288.     // 获得相应周的周六的日期   
  289.     public  String getSaturday() {  
  290.         int  mondayPlus =  this .getMondayPlus();  
  291.         GregorianCalendar currentDate = new  GregorianCalendar();  
  292.         currentDate.add(GregorianCalendar.DATE, mondayPlus + 7  * weeks +  6 );  
  293.         Date monday = currentDate.getTime();  
  294.         DateFormat df = DateFormat.getDateInstance();  
  295.         String preMonday = df.format(monday);  
  296.         return  preMonday;  
  297.     }  
  298.   
  299.     // 获得上周星期日的日期   
  300.     public  String getPreviousWeekSunday() {  
  301.         weeks = 0 ;  
  302.         weeks--;  
  303.         int  mondayPlus =  this .getMondayPlus();  
  304.         GregorianCalendar currentDate = new  GregorianCalendar();  
  305.         currentDate.add(GregorianCalendar.DATE, mondayPlus + weeks);  
  306.         Date monday = currentDate.getTime();  
  307.         DateFormat df = DateFormat.getDateInstance();  
  308.         String preMonday = df.format(monday);  
  309.         return  preMonday;  
  310.     }  
  311.   
  312.     // 获得上周星期一的日期   
  313.     public  String getPreviousWeekday() {  
  314.         weeks--;  
  315.         int  mondayPlus =  this .getMondayPlus();  
  316.         GregorianCalendar currentDate = new  GregorianCalendar();  
  317.         currentDate.add(GregorianCalendar.DATE, mondayPlus + 7  * weeks);  
  318.         Date monday = currentDate.getTime();  
  319.         DateFormat df = DateFormat.getDateInstance();  
  320.         String preMonday = df.format(monday);  
  321.         return  preMonday;  
  322.     }  
  323.   
  324.     // 获得下周星期一的日期   
  325.     public  String getNextMonday() {  
  326.         weeks++;  
  327.         int  mondayPlus =  this .getMondayPlus();  
  328.         GregorianCalendar currentDate = new  GregorianCalendar();  
  329.         currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 );  
  330.         Date monday = currentDate.getTime();  
  331.         DateFormat df = DateFormat.getDateInstance();  
  332.         String preMonday = df.format(monday);  
  333.         return  preMonday;  
  334.     }  
  335.   
  336.     // 获得下周星期日的日期   
  337.     public  String getNextSunday() {  
  338.   
  339.         int  mondayPlus =  this .getMondayPlus();  
  340.         GregorianCalendar currentDate = new  GregorianCalendar();  
  341.         currentDate.add(GregorianCalendar.DATE, mondayPlus + 7  +  6 );  
  342.         Date monday = currentDate.getTime();  
  343.         DateFormat df = DateFormat.getDateInstance();  
  344.         String preMonday = df.format(monday);  
  345.         return  preMonday;  
  346.     }  
  347.   
  348.     private   int  getMonthPlus() {  
  349.         Calendar cd = Calendar.getInstance();  
  350.         int  monthOfNumber = cd.get(Calendar.DAY_OF_MONTH);  
  351.         cd.set(Calendar.DATE, 1 ); // 把日期设置为当月第一天   
  352.         cd.roll(Calendar.DATE, -1 ); // 日期回滚一天,也就是最后一天   
  353.         MaxDate = cd.get(Calendar.DATE);  
  354.         if  (monthOfNumber ==  1 ) {  
  355.             return  -MaxDate;  
  356.         } else  {  
  357.             return   1  - monthOfNumber;  
  358.         }  
  359.     }  
  360.   
  361.     // 获得上月最后一天的日期   
  362.     public  String getPreviousMonthEnd() {  
  363.         String str = "" ;  
  364.         SimpleDateFormat sdf = new  SimpleDateFormat( "yyyy-MM-dd" );  
  365.   
  366.         Calendar lastDate = Calendar.getInstance();  
  367.         lastDate.add(Calendar.MONTH, -1 ); // 减一个月   
  368.         lastDate.set(Calendar.DATE, 1 ); // 把日期设置为当月第一天   
  369.         lastDate.roll(Calendar.DATE, -1 ); // 日期回滚一天,也就是本月最后一天   
  370.         str = sdf.format(lastDate.getTime());  
  371.         return  str;  
  372.     }  
  373.   
  374.     // 获得下个月第一天的日期   
  375.     public  String getNextMonthFirst() {  
  376.         String str = "" ;  
  377.         SimpleDateFormat sdf = new  SimpleDateFormat( "yyyy-MM-dd" );  
  378.   
  379.         Calendar lastDate = Calendar.getInstance();  
  380.         lastDate.add(Calendar.MONTH, 1 ); // 减一个月   
  381.         lastDate.set(Calendar.DATE, 1 ); // 把日期设置为当月第一天   
  382.         str = sdf.format(lastDate.getTime());  
  383.         return  str;  
  384.     }  
  385.   
  386.     // 获得下个月最后一天的日期   
  387.     public  String getNextMonthEnd() {  
  388.         String str = "" ;  
  389.         SimpleDateFormat sdf = new  SimpleDateFormat( "yyyy-MM-dd" );  
  390.   
  391.         Calendar lastDate = Calendar.getInstance();  
  392.         lastDate.add(Calendar.MONTH, 1 ); // 加一个月   
  393.         lastDate.set(Calendar.DATE, 1 ); // 把日期设置为当月第一天   
  394.         lastDate.roll(Calendar.DATE, -1 ); // 日期回滚一天,也就是本月最后一天   
  395.         str = sdf.format(lastDate.getTime());  
  396.         return  str;  
  397.     }  
  398.   
  399.     // 获得明年最后一天的日期   
  400.     public  String getNextYearEnd() {  
  401.         String str = "" ;  
  402.         SimpleDateFormat sdf = new  SimpleDateFormat( "yyyy-MM-dd" );  
  403.   
  404.         Calendar lastDate = Calendar.getInstance();  
  405.         lastDate.add(Calendar.YEAR, 1 ); // 加一个年   
  406.         lastDate.set(Calendar.DAY_OF_YEAR, 1 );  
  407.         lastDate.roll(Calendar.DAY_OF_YEAR, -1 );  
  408.         str = sdf.format(lastDate.getTime());  
  409.         return  str;  
  410.     }  
  411.   
  412.     // 获得明年第一天的日期   
  413.     public  String getNextYearFirst() {  
  414.         String str = "" ;  
  415.         SimpleDateFormat sdf = new  SimpleDateFormat( "yyyy-MM-dd" );  
  416.   
  417.         Calendar lastDate = Calendar.getInstance();  
  418.         lastDate.add(Calendar.YEAR, 1 ); // 加一个年   
  419.         lastDate.set(Calendar.DAY_OF_YEAR, 1 );  
  420.         str = sdf.format(lastDate.getTime());  
  421.         return  str;  
  422.   
  423.     }  
  424.   
  425.     // 获得本年有多少天   
  426.     private   int  getMaxYear() {  
  427.         Calendar cd = Calendar.getInstance();  
  428.         cd.set(Calendar.DAY_OF_YEAR, 1 ); // 把日期设为当年第一天   
  429.         cd.roll(Calendar.DAY_OF_YEAR, -1 ); // 把日期回滚一天。   
  430.         int  MaxYear = cd.get(Calendar.DAY_OF_YEAR);  
  431.         return  MaxYear;  
  432.     }  
  433.   
  434.     private   int  getYearPlus() {  
  435.         Calendar cd = Calendar.getInstance();  
  436.         int  yearOfNumber = cd.get(Calendar.DAY_OF_YEAR); // 获得当天是一年中的第几天   
  437.         cd.set(Calendar.DAY_OF_YEAR, 1 ); // 把日期设为当年第一天   
  438.         cd.roll(Calendar.DAY_OF_YEAR, -1 ); // 把日期回滚一天。   
  439.         int  MaxYear = cd.get(Calendar.DAY_OF_YEAR);  
  440.         if  (yearOfNumber ==  1 ) {  
  441.             return  -MaxYear;  
  442.         } else  {  
  443.             return   1  - yearOfNumber;  
  444.         }  
  445.     }  
  446.   
  447.     // 获得本年第一天的日期   
  448.     public  String getCurrentYearFirst() {  
  449.         int  yearPlus =  this .getYearPlus();  
  450.         GregorianCalendar currentDate = new  GregorianCalendar();  
  451.         currentDate.add(GregorianCalendar.DATE, yearPlus);  
  452.         Date yearDay = currentDate.getTime();  
  453.         DateFormat df = DateFormat.getDateInstance();  
  454.         String preYearDay = df.format(yearDay);  
  455.         return  preYearDay;  
  456.     }  
  457.   
  458.     // 获得本年最后一天的日期 *   
  459.     public  String getCurrentYearEnd() {  
  460.         Date date = new  Date();  
  461.         SimpleDateFormat dateFormat = new  SimpleDateFormat( "yyyy" ); // 可以方便地修改日期格式   
  462.         String years = dateFormat.format(date);  
  463.         return  years +  "-12-31" ;  
  464.     }  
  465.   
  466.     // 获得上年第一天的日期 *   
  467.     public  String getPreviousYearFirst() {  
  468.         Date date = new  Date();  
  469.         SimpleDateFormat dateFormat = new  SimpleDateFormat( "yyyy" ); // 可以方便地修改日期格式   
  470.         String years = dateFormat.format(date);  
  471.         int  years_value = Integer.parseInt(years);  
  472.         years_value--;  
  473.         return  years_value +  "-1-1" ;  
  474.     }  
  475.   
  476.     // 获得上年最后一天的日期   
  477.     public  String getPreviousYearEnd() {  
  478.         weeks--;  
  479.         int  yearPlus =  this .getYearPlus();  
  480.         GregorianCalendar currentDate = new  GregorianCalendar();  
  481.         currentDate.add(GregorianCalendar.DATE, yearPlus + MaxYear * weeks  
  482.                 + (MaxYear - 1 ));  
  483.         Date yearDay = currentDate.getTime();  
  484.         DateFormat df = DateFormat.getDateInstance();  
  485.         String preYearDay = df.format(yearDay);  
  486.         return  preYearDay;  
  487.     }  
  488.   
  489.     // 获得本季度第一天   
  490.     public  String getThisSeasonFirstTime( int  month) {  
  491.         int  array[][] = { {  1 2 3  }, {  4 5 6  }, {  7 8 9  }, {  10 11 12  } };  
  492.         int  season =  1 ;  
  493.         if  (month >=  1  && month <=  3 ) {  
  494.             season = 1 ;  
  495.         }  
  496.         if  (month >=  4  && month <=  6 ) {  
  497.             season = 2 ;  
  498.         }  
  499.         if  (month >=  7  && month <=  9 ) {  
  500.             season = 3 ;  
  501.         }  
  502.         if  (month >=  10  && month <=  12 ) {  
  503.             season = 4 ;  
  504.         }  
  505.         int  start_month = array[season -  1 ][ 0 ];  
  506.         int  end_month = array[season -  1 ][ 2 ];  
  507.   
  508.         Date date = new  Date();  
  509.         SimpleDateFormat dateFormat = new  SimpleDateFormat( "yyyy" ); // 可以方便地修改日期格式   
  510.         String years = dateFormat.format(date);  
  511.         int  years_value = Integer.parseInt(years);  
  512.   
  513.         int  start_days =  1 ; // years+"-"+String.valueOf(start_month)+"-1";//getLastDayOfMonth(years_value,start_month);   
  514.         int  end_days = getLastDayOfMonth(years_value, end_month);  
  515.         String seasonDate = years_value + "-"  + start_month +  "-"  + start_days;  
  516.         return  seasonDate;  
  517.   
  518.     }  
  519.   
  520.     // 获得本季度最后一天   
  521.     public  String getThisSeasonFinallyTime( int  month) {  
  522.         int  array[][] = { {  1 2 3  }, {  4 5 6  }, {  7 8 9  }, {  10 11 12  } };  
  523.         int  season =  1 ;  
  524.         if  (month >=  1  && month <=  3 ) {  
  525.             season = 1 ;  
  526.         }  
  527.         if  (month >=  4  && month <=  6 ) {  
  528.             season = 2 ;  
  529.         }  
  530.         if  (month >=  7  && month <=  9 ) {  
  531.             season = 3 ;  
  532.         }  
  533.         if  (month >=  10  && month <=  12 ) {  
  534.             season = 4 ;  
  535.         }  
  536.         int  start_month = array[season -  1 ][ 0 ];  
  537.         int  end_month = array[season -  1 ][ 2 ];  
  538.   
  539.         Date date = new  Date();  
  540.         SimpleDateFormat dateFormat = new  SimpleDateFormat( "yyyy" ); // 可以方便地修改日期格式   
  541.         String years = dateFormat.format(date);  
  542.         int  years_value = Integer.parseInt(years);  
  543.   
  544.         int  start_days =  1 ; // years+"-"+String.valueOf(start_month)+"-1";//getLastDayOfMonth(years_value,start_month);   
  545.         int  end_days = getLastDayOfMonth(years_value, end_month);  
  546.         String seasonDate = years_value + "-"  + end_month +  "-"  + end_days;  
  547.         return  seasonDate;  
  548.   
  549.     }  
  550.   
  551.     /**  
  552.      * 获取某年某月的最后一天  
  553.      *   
  554.      * @param year  
  555.      *            年  
  556.      * @param month  
  557. 分享到:
    评论

相关推荐

    日历控件的封装

    本教程将详细探讨如何封装一个基于UIPickerView的日历控件,以实现自定义UI效果并根据不同类型加载不同数据。 首先,让我们了解UIPickerView的基本概念。UIPickerView是iOS SDK提供的一种组件,它允许用户在滚动...

    php封装的日历类.zip

    这个"php封装的日历类.zip"文件提供了一个已经封装好的PHP类,可以帮助开发者便捷地实现日历功能。下面我们将深入探讨这个日历类的设计和使用方法。 首先,这个类库的核心是创建一个类,可能命名为`Calendar`,它...

    封装得很好的Javascript日历类

    自己写的日历类,连样式表都封装了,只要几句话就可以调用.

    GXT自己封装的Calendar日历类

    "GXT自己封装的Calendar日历类"就是这样的一个自定义组件,它提供了更丰富的功能和更好的用户体验,相比GWT原生的日期选择器。GXT(Ext GWT)是Sencha公司为GWT提供的一套强大的UI库,它扩展了GWT的功能,提供了许多...

    基于CollectionView的日历封装

    "基于CollectionView的日历封装"这个项目就是利用UICollectionView的特性,为开发者提供一个易于使用、高度可定制的日历组件。下面我们将深入探讨这个话题。 首先,`CalendarView.h`和`CalendarView.m`是Objective-...

    一个用JS封装好的日历代码

    本资源提供了一个用JS封装好的日历代码,这是一个非常实用的功能,通常用于网站上的日期选择器或者事件管理应用。下面我们将详细探讨这个日历代码的实现原理、关键功能以及可能的扩展点。 首先,让我们了解日历组件...

    ios-封装日历控件.zip

    "ios-封装日历控件.zip" 提供了一个预封装的日历组件,名为HQCalendar,适用于快速构建支持时间选择功能的应用。以下是关于这个日历控件以及iOS中日历编程的一些关键知识点: 1. **自定义控件封装**: 在iOS开发中...

    java 实用的日历工具类 日历组件 直接就可以用 简单 功能强

    Java中的日历工具类是Java开发中不...这个“实用的日历工具类”可能就是对这些工具的封装,以提供更加便捷的使用体验。通过理解和掌握这些API,你可以更高效地处理日期和时间相关的问题,提高代码的可读性和可维护性。

    周视图日历+日程Demo

    - 日程数据通常需要封装在一个自定义类中,包含日程的开始时间、结束时间、标题、描述等属性。这些数据结构可以与后台数据库或网络服务进行交互,以实现日程的添加、删除和同步。 5. **适配器(Adapter)**: - ...

    android自定义日历控件源码

    - 创建一个新的Fragment类(例如:CustomCalendarFragment),在其中持有日历视图和Adapter实例。 - 在onCreateView方法中,加载布局并初始化日历控件,设置Adapter。 - 提供公共方法来设置初始选中日期、获取...

    日历 javascript

    最后,为了让日历组件更易于使用和复用,可以将其封装成一个可配置的函数或类,接收参数如当前日期、起始星期等,返回HTML结构或者操作DOM的方法。 总的来说,实现一个JavaScript日历涉及到JavaScript的日期处理、...

    日历备忘录Java源码

    在Java编程中,这些类可能遵循了面向对象的设计原则,如封装、继承和多态。例如,Month 和 Year 可能都继承自一个更抽象的 CalendarComponent 类,它们共享一些通用的属性和方法。同时,这些类也可能使用了设计模式...

    日历js文件(日历控件)

    如果日历控件代码量较大,可采用模块化设计,如ES6的`class`语法定义一个日历类,封装相关方法和属性。这样便于代码维护和复用,同时避免全局变量污染。 8. **插件和库** 开源社区提供了很多现成的日历插件和库,...

    一个vb写的日历类

    标题中的“一个vb写的日历类”指的是使用Visual Basic(VB)编程语言开发的一个日历控件或类库。Visual Basic是微软推出的一种面向对象的编程工具,特别适合于快速构建Windows应用程序。在这个项目中,开发者创建了...

    自己封装的使用日历控件

    在本案例中,我们讨论的是一个自定义封装的C++日历类,该类不仅提供基本的日历功能,还增加了时间数据的补充功能,比如将"2012-4-2"这样的日期格式转换为更标准的"2012-04-02"格式。 首先,我们要理解C++中的时间...

    C++ 仿QQ日历源代码

    1. **面向对象编程**:C++支持类和对象的概念,通过封装、继承和多态性来组织代码。在这个项目中,日历、日期、时间等可能会被定义为类,每个类都有相应的属性和方法。 2. **Windows API或MFC**:在Windows平台上...

    unity ugui 日历demo

    这些函数可能封装在名为`CalendarModel`的类中,负责日历的逻辑运算。 5. **用户交互**:UGUI允许通过事件系统(EventSystem)来处理用户输入,比如点击日历上的日期单元格。在Demo中,可能会有事件监听器(Event...

    js完美日历插件

    5. **模块化与封装**:为了提高代码的可复用性和维护性,我们需要将日历功能封装为一个独立的模块,可能是一个函数或者一个类。这样在其他项目中可以直接引入这个模块,快速实现日历功能。 6. **兼容性考虑**:由于...

    一个不错的php日历类

    通过这个日历类,初学者可以学习如何组织代码,理解类与对象之间的关系,以及如何将复杂问题分解为可管理的部分。此外,这也可以帮助他们熟悉PHP的OOP特性,比如抽象类、接口和命名空间,这些是构建大型、可维护的...

    VC MFC日历控件ocx activex

    MFC是Microsoft为简化Windows API编程而开发的一个类库,它封装了Windows API,使得开发者能够用C++编写出更面向对象的Windows应用程序。MFC包含了大量的类,这些类代表了Windows操作系统中的各种对象,如窗口、菜单...

Global site tag (gtag.js) - Google Analytics