Java 处理LocalDate和Months名称
我有一个.txt文件,我将它导入我的Java程序,例如2012.12.01。我对这个月很感兴趣,因为我从不使用getDayOfMonth.name;部分,即使如此,它写的是名字,而不是数字一月,而不是01或1。所以我试着确定这个月是不是二月。但即使它是真的,if也会返回false。 也许是因为月份永远不等于字符串Java 处理LocalDate和Months名称,java,localdate,leap-year,Java,Localdate,Leap Year,我有一个.txt文件,我将它导入我的Java程序,例如2012.12.01。我对这个月很感兴趣,因为我从不使用getDayOfMonth.name;部分,即使如此,它写的是名字,而不是数字一月,而不是01或1。所以我试着确定这个月是不是二月。但即使它是真的,if也会返回false。 也许是因为月份永远不等于字符串 for (Changes c : list) { int Year = v.getDate().getYear(); M
for (Changes c : list) {
int Year = v.getDate().getYear();
Month month= v.getDate().getMonth();
int Day = v.getDate().getDayOfMonth();
if (Year%4==0 && month.equals("FEBRUARY") && Day==24)
leapDay = true;
}
应该是
Month.FEBRUARY.equals(month)
二月是一个字符串文字,而月是一个月实例,这使它们无法比较
有,所以你的病情可以降到
if (v.getDate().isLeapYear()) {
// handle a leap year
}
应该是
Month.FEBRUARY.equals(month)
二月是一个字符串文字,而月是一个月实例,这使它们无法比较
有,所以你的病情可以降到
if (v.getDate().isLeapYear()) {
// handle a leap year
}
我猜是因为月份永远不等于字符串
for (Changes c : list) {
int Year = v.getDate().getYear();
Month month= v.getDate().getMonth();
int Day = v.getDate().getDayOfMonth();
if (Year%4==0 && month.equals("FEBRUARY") && Day==24)
leapDay = true;
}
是的,没错。您可以将Month值与Month.二月进行比较,也可以只检查getMonthValue返回的值。但请注意,您的月日部分目前是错误的,并且您的年检在可被100整除的年份中是错误的。幸运的是,你不需要知道这一部分——无论如何,日期只能是闰年的2月29日。我会使用:
LocalDate date = v.getDate();
if (date.getMonthValue() == 2 && date.getDayOfMonth() == 29) {
// Leap day handling
}
我猜是因为月份永远不等于字符串
for (Changes c : list) {
int Year = v.getDate().getYear();
Month month= v.getDate().getMonth();
int Day = v.getDate().getDayOfMonth();
if (Year%4==0 && month.equals("FEBRUARY") && Day==24)
leapDay = true;
}
是的,没错。您可以将Month值与Month.二月进行比较,也可以只检查getMonthValue返回的值。但请注意,您的月日部分目前是错误的,并且您的年检在可被100整除的年份中是错误的。幸运的是,你不需要知道这一部分——无论如何,日期只能是闰年的2月29日。我会使用:
LocalDate date = v.getDate();
if (date.getMonthValue() == 2 && date.getDayOfMonth() == 29) {
// Leap day handling
}