当前位置: 代码迷 >> Java Web开发 >> 获取当前日期的前四个季度,其后在获取这四个季度的开始时间和结束时间
  详细解决方案

获取当前日期的前四个季度,其后在获取这四个季度的开始时间和结束时间

热度:1894   发布时间:2013-02-25 21:08:57.0
获取当前日期的前四个季度,然后在获取这四个季度的开始时间和结束时间
根据当前的日期,获取该日期前面的四个季度。然后在获取这四个季度开始日期和结束日期。例如:2012-10-15,获取10月份前面的四个季度。10、11、12,1、2、3,4、5、6,7、8、9,然后在获取10月1号,和9月的最后一天。希望各位大侠帮忙一下。这个如何去实现

------解决方案--------------------------------------------------------
Java code
import java.text.SimpleDateFormat;import java.util.Calendar;public class T2 {    public static void main(String[] args) {        Calendar c = Calendar.getInstance();                int m = c.get(Calendar.MONTH) + 1;            //月份        int s = (int)Math.ceil( (m - 1)  / 3) + 1;     //季度        System.out.println(s);        int em = (s - 1) * 3;                        //上一个季度最后一个月                Calendar sc = Calendar.getInstance();        sc.setTimeInMillis(c.getTimeInMillis());        sc.set(Calendar.MONTH, em);        sc.set(Calendar.DAY_OF_MONTH, 1);        sc.set(Calendar.HOUR_OF_DAY, 0);        sc.set(Calendar.MINUTE, 0);        sc.set(Calendar.SECOND, 0);        sc.set(Calendar.MILLISECOND, 0);        sc.add(Calendar.MILLISECOND, -1);        out(sc);//结束时间                Calendar ec = Calendar.getInstance();        ec.setTimeInMillis(c.getTimeInMillis());        ec.set(Calendar.MONTH, em - 1);    //month 基于0,一月的值是0        ec.set(Calendar.DAY_OF_MONTH, 1);        ec.set(Calendar.HOUR_OF_DAY, 0);        ec.set(Calendar.MINUTE, 0);        ec.set(Calendar.SECOND, 0);        ec.set(Calendar.MILLISECOND, 0);        ec.add(Calendar.MONTH, -11);     //向前12个月,但是-11        out(ec);//开始时间            }        protected static void out(Calendar c){        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        String str = sdf.format(c.getTime());        System.out.println(str);    }    }
  相关解决方案