java - 特定年份特定月份的天数?

标签 java datetime calendar

如何知道某年某月有多少天?

String date = "2010-01-19";
String[] ymd = date.split("-");
int year = Integer.parseInt(ymd[0]);
int month = Integer.parseInt(ymd[1]);
int day = Integer.parseInt(ymd[2]);
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR,year);
calendar.set(Calendar.MONTH,month);
int daysQty = calendar.getDaysNumber(); // Something like this

最佳答案

Java 8 及更高版本

@Warren M. Nocos。 如果您尝试使用 Java 8 的新 Date and Time API , 你可以使用 java.time.YearMonth类(class)。见 Oracle Tutorial .

// Get the number of days in that month
YearMonth yearMonthObject = YearMonth.of(1999, 2);
int daysInMonth = yearMonthObject.lengthOfMonth(); //28  

测试:在闰年尝试一个月:

yearMonthObject = YearMonth.of(2000, 2);
daysInMonth = yearMonthObject.lengthOfMonth(); //29 

Java 7 及更早版本

创建日历,设置年月并使用getActualMaximum

int iYear = 1999;
int iMonth = Calendar.FEBRUARY; // 1 (months begin with 0)
int iDay = 1;

// Create a calendar object and set year and month
Calendar mycal = new GregorianCalendar(iYear, iMonth, iDay);

// Get the number of days in that month
int daysInMonth = mycal.getActualMaximum(Calendar.DAY_OF_MONTH); // 28

测试:在闰年尝试一个月:

mycal = new GregorianCalendar(2000, Calendar.FEBRUARY, 1);
daysInMonth= mycal.getActualMaximum(Calendar.DAY_OF_MONTH);      // 29

关于java - 特定年份特定月份的天数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8940438/

相关文章:

java - 核心 API 调用 System.gc()

java - 如何找到给定时间的时差

Java 8 LocalDate 不会解析有效的日期字符串

java - 如何使用日历生成包含当前时间的当前小时和分钟的文件

java - 在 Web 应用程序中更新数据库中的特定记录

java - jtable如何使用rs2xml

python - pandas to_datetime() 然后 concat() on DateTime Index

PHP:使用 datetime() 计算时间

php - 带时间戳的免费日历

java - 如何在 Java 中将日历增加 7 天直到下个月,然后从开始日期开始一年?