奋斗的殇鹿 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条)

报告相同问题?

悬赏问题

  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来