奋斗的殇鹿 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 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建