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