通过easyui的combobox配合后台动态实现季度获取

本文记录了在开发过程中,如何根据项目上线时间动态获取季度数据以进行费用统计。利用EasyUI的combobox组件,结合后台Java代码,当用户点击统计菜单时,从服务器请求并填充季度选择项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在开发中,有这么个需求,根据项目上线时间,按季度统计费用,由于项目上线时间变化太大,后来直接配置在配置文件中,待点击统计菜单,打开统计页面时,向后台请求季度数据;读取配置文件,获得上线时间,调用工具类获得季度数据,返回用来填充easyui的combobox。

代码注释比较详细,直接贴代码,作以记录。

Java端工具类

/**
 * 动态获取季度
 * @author iCheetor
 *
 */
public class CreateDynamicQuarter {

	public static void main(String[] args) throws ParseException {
		List<Map<String, Object>> show = show("2017-08-20");
		System.out.println(show);
		List<Map<String, Object>> showFuture = showPastAndFuture("2017-10-30");
		System.out.println(showFuture);
	}
	/**
	 * 比较当前日期和参数给定日期,小于当前日期返回true
	 * @param date
	 * @return
	 * @throws ParseException
	 */
	public static boolean validate(String date) throws ParseException{
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
		Date parse = sdf.parse(date);
		Date current = new Date();
		if (parse.getTime() < current.getTime()){
			return true;
		} 
		return false;
	}
	/**
	 * 从给定日期到当前日期之间的季度,给定小
	 * @param date
	 * @return
	 * @throws ParseException
	 */
	public static List<Map<String,Object>> show(String date) throws ParseException{
		List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
		String[] split = date.split("-");
		int y = Integer.parseInt(split[0]);//年
		int m = Integer.parseInt(split[1]);//月
		int quarterStart = getQuarter(m);  //对应季度
		for(;;){
			
			if(check(y,quarterStart)){//比当前大,直接break
				for(int i = 0; i < 4; i ++){
					if(i != 0){ //第一次,使用初始计算季度,以后加1
						quarterStart = quarterStart + 1;
					}
					if(quarterStart > 4){//第四季度+1大于4,跳出内循环
						break;
					} else {
						if(check(y,quarterStart)){
							Map<String,Object> map = new HashMap<String, Object>();
							String key = UUID.randomUUID().toString();
							String value = getValue(y,quarterStart);
							map.put("id", key );
							map.put("name", value);
							list.add(map);
						}
					}
				}
				y = y + 1; //内循环结束,年份加1,月份置为1,季度置为1
				m = 1;
				quarterStart = 1;
			} else {
				break;
			}
		}
		/**
		 * 集合反转,保证倒序,加入最后一个元素,“自定义”
		 */
		Collections.reverse(list);
		list.add(addLast0());
		/**
		 * 可以不用处理,如果第一个元素上的操作比较特殊,再进行处理
		 */
		processFirst(list);
		return list;
	}
	/**
	 * 处理第一个元素
	 * @param list  待
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潭影空人心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值