gpt4 book ai didi

java - 获取本月的最后一个星期一

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:43:30 24 4
gpt4 key购买 nike

我在获取上个月最后一个星期一的正确日期时遇到问题。我认为像 this 中那样计算它并不绝对正确。问题并希望拒绝使用常量的算术运算。此代码按预期工作:

public class mCalendar {
private int thisMonth;
private int prevMonth;
private int lstDayThisMonth;
private int lstDayPrevMonth;
private int weekOffset;
private int LstMnd;
public String monthLetter;
Locale locale = Locale.getDefault();
private Calendar mCal;

public mCalendar(){
this.mCal = Calendar.getInstance();
mCal.set(Calendar.MONTH,0);
this.thisMonth = mCal.get(Calendar.MONTH);
this.prevMonth = thisMonth - 1;
this.lstDayThisMonth = mCal.getActualMaximum(Calendar.DAY_OF_MONTH);
this.monthLetter = mCal.getDisplayName(Calendar.MONTH, Calendar.LONG, locale);

mCal.set(Calendar.MONTH,prevMonth);
this.lstDayPrevMonth = mCal.getActualMaximum(Calendar.DAY_OF_MONTH);
mCal.set(Calendar.DAY_OF_MONTH,lstDayPrevMonth);
this.LstMnd = mCal.get(Calendar.DAY_OF_WEEK_IN_MONTH);
mCal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
mCal.set(Calendar.DAY_OF_WEEK_IN_MONTH, LstMnd);
this.weekOffset = mCal.get(Calendar.DAY_OF_MONTH);
}

但是当我在构造函数主体 Calendar.DAY_OF_MONTH 的第二条指令中将 Calendar.MONTH 设置为 1 时,返回二月的第一个星期一。我预计该函数会在 1 月 26 日返回,但它会在 2 月 2 日返回。我认为它会发生,因为 2 月 1 日是星期日,但是,例如,对于 3 月代码工作正常。

请帮帮我,我很困惑)

最佳答案

为什么不使用像 Joda 这样的库呢? :

LocalDate lastDay = new LocalDate().minusMonths(1).dayOfMonth().withMaximumValue();
LocalDate lastMonday = lastDayOfMonth.dayOfWeek().withMinimumValue();

关于java - 获取本月的最后一个星期一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30491065/

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