gpt4 book ai didi

Java 日历/日期问题

转载 作者:行者123 更新时间:2023-12-04 05:26:11 28 4
gpt4 key购买 nike

我正在构建一个月份列表,用作 JSP 中表格的标题。

我正在做的是比较我从数据库中获得的月份,并一直迭代或“尝试”到那个月。在这种情况下,月份是 11 月

问题是我只能从 2012 年 10 月到 2013 年 10 月建立一个列表

我的逻辑看起来很合理,我不知道我还能尝试什么。

起点和比较...从数据库中的关键是

int effortYear = 2013
Calendar max = Calendar.getInstance();
max.set(effortYear,8,1,0,0,0);
for (ItemUnitBean item: scheduledBeans)

{
ItemUnitBean bean = new ItemUnitBean();
for(Entry<Date, ItemPhasing> en : item.getScheduledItemByMonth().entrySet() )
{
System.out.println( "KEY= " + en.getKey() ); // KEY =2013-11-01
if ( en.getKey().compareTo(max.getTime()) > 0 )
{
max.setTime(en.getKey());
}

}
finalScheduledBeans.add(bean);
}

现在构建列表:
TreeSet<Date> scheduledMonthList = new TreeSet<Date>();
Calendar temp = Calendar.getInstance();
temp.set(effortYear-1,9,1,0,0,0);

do
{
scheduledMonthList.add(temp.getTime());
System.out.println("montList= " + temp.getTime() );
temp.add( Calendar.MONTH, 1 );


} while( temp.compareTo(max) <= 0 );

这是记录器吐出的内容:

enter image description here

谁能看出为什么没有将 11 月添加到列表中?

最佳答案

您开始循环时将日历设置为现在,并在其中重置年、月、日、小时、分钟和秒。但是您没有将毫秒设置为 0。

因此,一旦您到达 10 月,就添加一个月,并获得 11 月 + 几毫秒。并且十一月 + 一些毫秒比十一月 + 0 毫秒大。

关于Java 日历/日期问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13181069/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com