设置列表或地图中的所有月份以及年份

Posted

技术标签:

【中文标题】设置列表或地图中的所有月份以及年份【英文标题】:Set all months in a list or map along with years 【发布时间】:2016-12-19 11:10:03 【问题描述】:

我想设置一个更可取的列表或地图, 例如,我会得到一个月和一年的输入 考虑输入是 Feb-2015 那么列表或地图必须包含接下来 12 个月的月份和年份。 喜欢 feb-2015 march-2015 apr-2015 may-215.... 直到 feb-2016

上述方式如何设置地图或列表?

【问题讨论】:

实际上什么都没有!! 您说的是“12 个月”,但在您的示例中,您填写的是 13 个月。 @FrancisRaj 好吧,这是你的问题。 “我想设置一个更可取的列表或地图” - 我们怎么知道?你想用那个列表或地图或其他东西做什么?看看docs.oracle.com/javase/8/docs/api/java/time/YearMonth.html 和全新的 Java Time API ... 【参考方案1】:

试试SimpleDateFormatCalendar

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);
    

Code on My YouTube Channel

【讨论】:

以上是关于设置列表或地图中的所有月份以及年份的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 获取月份、年份的日期列表

为 ASP.NET 编写月份和年份下拉列表的最佳方法是啥?

在firebird选择过程中显示给定月份和年份中的所有日期

在MySql中、怎样根据年份或者月份查询数据表中的数据?

折叠档案问题

在MySql中、怎样根据年份或者月份查询数据表中的数据?