首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >特定年份中特定月份的天数?

特定年份中特定月份的天数?
EN

Stack Overflow用户
提问于 2012-01-20 19:05:29
回答 20查看 248K关注 0票数 181

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

代码语言:javascript
复制
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
EN

回答 20

Stack Overflow用户

发布于 2012-01-20 19:08:52

java.util.Calendar的代码

如果您必须使用java.util.Calendar,我怀疑您需要:

代码语言:javascript
复制
int days = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);

Joda时间的代码

然而,就我个人而言,我建议首先使用Joda Time而不是java.util.{Calendar, Date},在这种情况下,您可以使用:

代码语言:javascript
复制
int days = chronology.dayOfMonth().getMaximumValue(date);

请注意,与其单独解析字符串值,不如获取您正在使用的任何日期/时间API来解析它。在java.util.*中,您可以使用SimpleDateFormat;在Joda Time中,您可以使用DateTimeFormatter

票数 45
EN

Stack Overflow用户

发布于 2012-01-20 19:09:36

您可以使用Calendar.getActualMaximum方法:

代码语言:javascript
复制
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month);
int numDays = calendar.getActualMaximum(Calendar.DATE);
票数 30
EN

Stack Overflow用户

发布于 2016-03-08 01:54:20

java.time.LocalDate

从Java1.8开始,您可以在java.time.LocalDate上使用lengthOfMonth方法

代码语言:javascript
复制
LocalDate date = LocalDate.of(2010, 1, 19);
int days = date.lengthOfMonth();
票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8940438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档