奋斗的殇鹿 2017-03-01 02:51 采纳率: 36.1%
浏览 845
已采纳

java新手求教,各位大神帮帮忙。。。小弟在线等。。。

我的问题是:
像2017-03-01 到 2017-09-01 这两个日期之间想差了多少个季度,再得出每个季度的第一天和最后一天 这怎么搞,我搞了好久都没搞出来

  • 写回答

7条回答 默认 最新

  • 奋斗的殇鹿 2017-03-03 01:31
    关注

    String start = satrdate.substring(5,7);
    int st = Integer.parseInt(start);
    String end = enddate.substring(5,7);
    int ed = Integer.parseInt(end);
    int sm = 0;
    int lm = 0;
    if(st >= 2 && st < 5){
    sm = 1;
    }else if(st >= 5 && st < 8){
    sm = 2;
    }else if(st >= 8 && st < 11){
    sm = 3;
    }else{
    sm = 4;
    }
    if(ed >= 2 && ed < 5){
    lm = 1;
    }else if(ed >= 5 && ed < 8){
    lm = 2;
    }else if(ed >= 8 && ed < 11){
    lm = 3;
    }else{
    lm = 4;
    }
    int sum =lm-sm;
    int mon = 0;
    // throw new IllegalDataException("结束月份="+ed+" 开始月份="+st+" 季度差="+sum);
    for(int i=0;i<=sum;i++){
    if(i > 0){
    mon = mon + 3;
    }
    Calendar calendar = Calendar.getInstance();
    if(i == 0){
    calendar.setTime(startdate);

    int month = getQuarterInMonth(calendar.get(startdate.getMonth()), true);

    calendar.set(Calendar.MONTH, month);

    calendar.set(Calendar.DAY_OF_MONTH, 1);
    GlobalVariable.log.debug("当季度的第一天:" + sf.format(calendar.getTime()));
    // System.out.println("当季度的第一天:" + sf.format(calendar.getTime()));

    // // 季度末

    calendar.setTime(startdate);

    month = getQuarterInMonth(calendar.get(startdate.getMonth()), false);

    calendar.set(Calendar.MONTH, month + 1);

    calendar.set(Calendar.DAY_OF_MONTH, 0);

    GlobalVariable.log.debug("当前时间的季度末:" + sf.format(calendar.getTime()));
    }else{
    // 季度初

    calendar.setTime(startdate);

    int month = getQuarterInMonth(calendar.get(startdate.getMonth()), true);

    calendar.set(Calendar.MONTH, month+mon);

    calendar.set(Calendar.DAY_OF_MONTH, 1);
    GlobalVariable.log.debug("当季度的第一天:" + sf.format(calendar.getTime()));
    // System.out.println("当季度的第一天:" + sf.format(calendar.getTime()));

    // // 季度末

    calendar.setTime(startdate);

    month = getQuarterInMonth(calendar.get(startdate.getMonth()), false);

    calendar.set(Calendar.MONTH, month + 1+mon);

    calendar.set(Calendar.DAY_OF_MONTH, 0);

    GlobalVariable.log.debug("当前时间的季度末:" + sf.format(calendar.getTime()));
    // System.out.println("当前时间的季度末:" + sf.format(calendar.getTime()));
    }
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制