gpt4 book ai didi

java - 在java中将一个月计算为 "between"期间

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:04:19 27 4
gpt4 key购买 nike

我想选择创建日期介于给定月份的第一天和最后一天之间的记录。我通过以下方式计算开始日期和结束日期的月份:

日期“月份”只是时间范围内的随机日期

Calendar cal = Calendar.getInstance();
cal.setTime(month);
int endday = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
int actualmonth = cal.get(Calendar.MONTH) + 1;
int year = cal.get(Calendar.YEAR);

Date begin = format.parse("01." + actualmonth + "." + year);
Date end = format.parse(endday + "." + actualmonth + "." + year);

当我想到这一点时,我实际上也必须设置白天,以避免记录在该月的最后一天丢失。

我觉得这有点不雅,有人想出更好的解决方案吗?

最佳答案

我会做的是创建一个日历并将年月设置为您想要的月份,将日设置为 1,将小时、分钟和毫秒设置为零。然后把那个日期作为你的开始范围。然后我会加一个月,然后减去一毫秒。把那个日期作为你的结束范围。

  Calendar dateCal = Calendar.getInstance();
dateCal.set(Calendar.MONTH, month);
dateCal.set(Calendar.YEAR, year);
dateCal.set(Calendar.HOUR_OF_DAY, 0);
dateCal.set(Calendar.MINUTE, 0);
dateCal.set(Calendar.SECOND, 0);
dateCal.set(Calendar.MILLISECOND, 0);
Date startDate = dateCal.getTime();

dateCal.add(Calendar.MONTH, 1)
dateCal.add(Calendar.MILLISECOND, -1);
Date endDate = dateCal.getTime();

关于java - 在java中将一个月计算为 "between"期间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1509245/

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