在Java中,如何仅获取用户出生日期的月份和日期
我有一个要求,在用户生日那天给他们奖金。 我的方法是这样的,我想获取用户的出生日期,然后将其出生日期与当前系统日期进行比较,如果DOB.day和DOB.Month等于system.day和system.Month,则向用户奖励奖金。有人知道我如何用Java来处理这个问题吗 任何建议都会很有帮助,我是Java新手,但我认为这很有可能不?Java.time.MonthDay 如前所述,请使用在Java中,如何仅获取用户出生日期的月份和日期,java,eclipse,datetime,user-input,monthcalendar,Java,Eclipse,Datetime,User Input,Monthcalendar,我有一个要求,在用户生日那天给他们奖金。 我的方法是这样的,我想获取用户的出生日期,然后将其出生日期与当前系统日期进行比较,如果DOB.day和DOB.Month等于system.day和system.Month,则向用户奖励奖金。有人知道我如何用Java来处理这个问题吗 任何建议都会很有帮助,我是Java新手,但我认为这很有可能不?Java.time.MonthDay 如前所述,请使用MonthDay。它来自java.time,现代java日期和时间API,底部有链接。证明: Zone
MonthDay
。它来自java.time,现代java日期和时间API,底部有链接。证明:
ZoneId zone = ZoneId.of("Europe/Simferopol");
MonthDay today = MonthDay.now(zone);
DateTimeFormatter dobFormatter = DateTimeFormatter.ofPattern("M/d");
String userInput = "4/16";
MonthDay dateOfBirth = MonthDay.parse(userInput, dobFormatter);
if (dateOfBirth.equals(today)) {
System.out.println("Happy birthday " + dateOfBirth);
}
今日(四月十六日)的产量:
生日快乐——04-16
一个MonthDay
,顾名思义,是一个月和一个月的一天,所以没有一年。这对生日、周年纪念日之类的日子都很好。MonthDay
以ISO 8601格式打印,也可以使用相同或不同的格式化程序进行格式化。如果您的用户喜欢以不同的格式输入,例如16-4
,请相应地更改格式模式字符串
请注意,2月29日(闰年)出生的用户不会经常获得奖金,这将被视为不公平,在某些司法管辖区可能是非法的。因此,您可能希望将这些作为特例处理。使用if(dateOfBirth.equals(MonthDay.of(Month.二月二十九日))
。例如,在非闰年,您可能希望在2月的最后一天或3月的第一天发放奖金
链接
- 解释如何使用java.time。
- 在底部附近包括一个简短的
MonthDay
- 在底部附近包括一个简短的