vue + java 获取指定周期的开始和结束时间

/**
     * 获取指定周期的开始和结束时间
     * @param year
     * @param cycle
     * @param month
     * @param week
     * @return
     */
    @GetMapping(path = "/getStartAndEndTime")
    public AjaxResult getStartAndEndTime(String year,String cycle,String month,String week) {
        if(org.apache.commons.lang.StringUtils.isNotBlank(week)){
            DateTime dateTime = DateUtil.beginOfWeek(DateUtil.parse(week, "yyyy-MM-dd"));
            DateTime dateTime1 = DateUtil.endOfWeek(DateUtil.parse(week, "yyyy-MM-dd"));
            return AjaxResult.success("获取成功",new String[]{DateUtil.format(dateTime, "yyyy-MM-dd"),DateUtil.format(dateTime1, "yyyy-MM-dd")});
        }
        if(org.apache.commons.lang.StringUtils.isNotBlank(month)){
            DateTime dateTime = DateUtil.beginOfMonth(DateUtil.parse(month, "yyyy-MM-dd"));
            DateTime dateTime1 = DateUtil.endOfMonth(DateUtil.parse(month, "yyyy-MM-dd"));
            return AjaxResult.success("获取成功",new String[]{DateUtil.format(dateTime, "yyyy-MM-dd"),DateUtil.format(dateTime1, "yyyy-MM-dd")});
        }
        if(org.apache.commons.lang.StringUtils.isNotBlank(year) && org.apache.commons.lang.StringUtils.isNotBlank(cycle)){
            //调整日历
            Calendar calendar = Calendar.getInstance();
            calendar.set(Integer.valueOf(year), (Integer.valueOf(cycle) - 1) * 3 + 0, 1);//获取指定年和季度的大致开始时间

            //计算开始和结束时间
            DateTime dateTime = DateUtil.beginOfQuarter(calendar.getTime());
            DateTime dateTime1 = DateUtil.endOfQuarter(calendar.getTime());
            return AjaxResult.success("获取成功",new String[]{DateUtil.format(dateTime, "yyyy-MM-dd"),DateUtil.format(dateTime1, "yyyy-MM-dd")});
        }else if(org.apache.commons.lang.StringUtils.isNotBlank(year)){
            DateTime dateTime = DateUtil.beginOfYear(DateUtil.parse(year, "yyyy"));
            DateTime dateTime1 = DateUtil.endOfYear(DateUtil.parse(year, "yyyy"));
            return AjaxResult.success("获取成功",new String[]{DateUtil.format(dateTime, "yyyy-MM-dd"),DateUtil.format(dateTime1, "yyyy-MM-dd")});
        }

        return AjaxResult.error("参数错误,请重新选择");
    }
<el-dialog
      title="计算周期开始结束时间"
      :visible.sync="cycleData.show"
      width="25%"
      append-to-body
    >
      <el-form ref="cycleData" :model="cycleData" label-width="80px">
        <el-form-item label="年">
          <el-date-picker
            v-model="cycleData.year"
            type="year"
            format="yyyy"
            value-format="yyyy"
            placeholder="选择年"
          >
          </el-date-picker>
        </el-form-item>
        <el-form-item label="季度">
          <el-select v-model="cycleData.cycle" placeholder="请选择">
            <el-option
              v-for="item in cycleData.cycleOptions"
              :key="item.id"
              :label="item.name"
              :value="item.id"
            >
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="月">
          <el-date-picker
            v-model="cycleData.month"
            type="month"
            format="yyyy-MM-dd"
            value-format="yyyy-MM-dd"
            placeholder="选择月"
          >
          </el-date-picker>
        </el-form-item>
        <el-form-item label="星期">
          <el-date-picker
            v-model="cycleData.week"
            type="week"
            format="yyyy-MM-dd"
            value-format="yyyy-MM-dd"
            :picker-options="{ firstDayOfWeek: 1 }"
            placeholder="选择周"
          >
          </el-date-picker>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="getStartAndEndTime">确 定</el-button>
        <el-button @click="cycleData.show = false">取 消</el-button>
      </div>
    </el-dialog>
cycleData: {
        show: false,
        year: "",
        cycle: "", //季度
        month: "",
        week: "",
        cycleOptions: [
          { id: 1, name: "第一季度" },
          { id: 2, name: "第二季度" },
          { id: 3, name: "第三季度" },
          { id: 4, name: "第四季度" },
        ],
      },
openCycle() {
      this.cycleData.show = true;
    },
    getStartAndEndTime() {
      getStartAndEndTime(
        this.cycleData.year == null ? "" : this.cycleData.year,
        this.cycleData.cycle == null ? "" : this.cycleData.cycle,
        this.cycleData.month == null ? "" : this.cycleData.month,
        this.cycleData.week == null ? "" : this.cycleData.week
      ).then((response) => {
        this.searchDate = response.data;
        this.cycleData.show = false;
      });
    },

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值