java按季度生成list

 Java中根据输入的年份,按季度生成下拉列表:

package com.painarthur.com;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.regex.Pattern;

/**
 * 
 * @author paincupid
 * @since 2014.12.12
 * @version 1.0
 * blog address: http://blog.csdn.net/paincupid/article/details/41896361
 */
public class GenSeason {

	public static List genSeason(String startYear) throws Exception{
		List<String> list = new ArrayList();
		if(!checkNumeric(startYear)){
			return null;
		}
		SimpleDateFormat df = new SimpleDateFormat("yyyy");//设置日期格式
	    String sysdate = df.format(new Date());
	    int sysdateNum = new Integer(sysdate);
	    int startYearNum = new Integer(startYear);
	    int num = sysdateNum - startYearNum;
	    
	    SimpleDateFormat df2 = new SimpleDateFormat("MM");//设置日期格式
	    String sysdate2 = df2.format(new Date());
	    int mm = new Integer(sysdate2);
	    int stop = 1;
	    if(mm>3 && mm<=6){
	    	stop = 2;
	    }else if(mm>6 && mm<=9){
	    	stop = 3;
	    }else if(mm>9 && mm<=12){
	    	stop = 4;
	    }
	    
		for(int i=0;i<num;i++){
			for(int k=1;k<5;k++){
				String t = startYearNum+"年"+k+"季度"; 
				list.add(t);
			}
			if(startYearNum<sysdateNum){
				startYearNum += 1;
			}
			if(startYearNum==sysdateNum){
				for(int k=1;k<=stop;k++){
					String t = startYearNum+"年"+k+"季度"; 
					list.add(t);
				}
			}
		}
		return list;
	}
	public static boolean checkNumeric(String startYear) throws Exception{
		boolean flag = false;
	    Pattern pattern = Pattern.compile("[0-9]*");
	    flag = pattern.matcher(startYear).matches();
	    if(!flag){
	    	throw new Exception("请输入数字");
	    }
	    SimpleDateFormat df = new SimpleDateFormat("yyyy");//设置日期格式
	    String sysdate = df.format(new Date());
	    int sysdateNum = new Integer(sysdate);
	    int startYearNum = new Integer(startYear);
	    if(startYear.length()!=4){
	    	flag =false;
	    	throw new Exception("请输入4位有效的年份");
	    }
	    if(startYearNum>sysdateNum){
	    	flag =false;
	    	throw new Exception("请输入小于系统的年份");
	    }
	    return flag;    
	 } 
	public static void main(String[] args) throws Exception {
		List<String> list = GenSeason.genSeason("2010");
		for (String str : list) {
			System.out.println(str);
		}
	}

}

输出效果如下:

2010年1季度
2010年2季度
2010年3季度
2010年4季度
2011年1季度
2011年2季度
2011年3季度
2011年4季度
2012年1季度
2012年2季度
2012年3季度
2012年4季度
2013年1季度
2013年2季度
2013年3季度
2013年4季度
2014年1季度
2014年2季度
2014年3季度
2014年4季度

转载请注明:http://blog.csdn.net/paincupid/article/details/41896361



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值