设置列表或地图中的所有月份以及年份
Set all months in a list or map along with years
我想设置一个列表或地图,哪个更可取,
例如,我将输入一个月和一年
考虑输入是
Feb-2015
那么列表或地图必须包含接下来 12 个月的月份和年份。
喜欢
feb-2015
march-2015
apr-2015
may-215....
直到
feb-2016
如何按照上述方式设置地图或列表?
试试 SimpleDateFormat
和 Calendar
:
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
class Demo{
public static void main(String[]args)throws ParseException{
final String input="Mar-2016";
final SimpleDateFormat fmt=new SimpleDateFormat("MMM-yyyy");//same as above format
Date date=fmt.parse(input);
final Calendar cal=Calendar.getInstance();//as of now
cal.setTime(date);//set to input
final int month=cal.get(Calendar.MONTH);//gives index 0 - 11, Jan - Dec
List<String> dates=new ArrayList<>();
do{
cal.add(Calendar.MONTH,1);//adds month one-by-one
date=cal.getTime();//give date
dates.add(fmt.format(date));//date to string as per above format
}while(month!=cal.get(Calendar.MONTH));//unitl next year of given input month
System.out.println(dates);
}
}
我想设置一个列表或地图,哪个更可取,
例如,我将输入一个月和一年
考虑输入是
Feb-2015
那么列表或地图必须包含接下来 12 个月的月份和年份。
喜欢
feb-2015
march-2015
apr-2015
may-215....
直到
feb-2016
如何按照上述方式设置地图或列表?
试试 SimpleDateFormat
和 Calendar
:
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
class Demo{
public static void main(String[]args)throws ParseException{
final String input="Mar-2016";
final SimpleDateFormat fmt=new SimpleDateFormat("MMM-yyyy");//same as above format
Date date=fmt.parse(input);
final Calendar cal=Calendar.getInstance();//as of now
cal.setTime(date);//set to input
final int month=cal.get(Calendar.MONTH);//gives index 0 - 11, Jan - Dec
List<String> dates=new ArrayList<>();
do{
cal.add(Calendar.MONTH,1);//adds month one-by-one
date=cal.getTime();//give date
dates.add(fmt.format(date));//date to string as per above format
}while(month!=cal.get(Calendar.MONTH));//unitl next year of given input month
System.out.println(dates);
}
}