当前位置: 首页 > 面试题库 >

Java 特定年份的特定月份的天数?

马德宇
2023-03-14
问题内容

如何知道特定年份的特定月份有多少天?

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. 如果你尝试使用Java 8的新Date and Time API,则可以使用java.time.YearMonthclass。请参阅Oracle教程。

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

测试:尝试a年的一个月:

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

测试:尝试a年的一个月:

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


 类似资料:
  • 在Java8中,我发现 给出一个月的第一个星期一的时间,以及 给出特定日期后的下一个星期一。 但是我想在具体日期后找到第n个星期一。 例如,我想要2017-06-06之后的第二个星期一,应该是2017-06-19,在哪里 会给我2017-06-12和 当然没有第n天的指标参数。它将给出下一个第一个星期一,即2017年6月12日。 如何在不循环的情况下计算它?

  • 我需要一个可以从此日期检索的查询,因为他们的学年总是从六月开始,到四月结束。 我试着用Where子句选择日期。 问号用于使用此代码准备语句的java语言 我也试过这个方法,但有了这个,我需要在一年后再次输入日期。 我希望它自动基于今天的年份。 比如今天是2019年3月20日。我应该能够返回从这一天到2018年6月1日的所有值

  • 问题内容: 我想查找给定月份和年份的总天数。示例:我想 查找年份= 2015,月份= 7的总天数 问题答案: 首先NSDate为给定的年份和月份创建一个: 然后使用该rangeOfUnit()方法,如 使用iPhone SDK的当月天数中所述? Swift 3(Xcode 8)更新:

  • 问题内容: 我正在处理Java作业,它涉及在用户指定月份和年份之后打印日历。我不能使用Calendar或GregorianCalendar类。我的问题是日历在星期六的第一天无法正确打印月份。我已经看了大约一个小时的代码,但不确定出什么问题。我正在使用Zeller的Congruence查找以“ h”表示的每月的第一天。 例如,2008年3月的日历(错误地)如下所示: 这是我的代码: 问题答案: 从星

  • 我正在做一个Java作业,它涉及在用户指定月份和年份后打印日历。我不能使用日历或日历类。我的问题是日历不能正确地打印月份的第一天是星期六。我已经看了我的代码大约一个小时了,我不确定哪里出了问题。我用Zeller的同余来计算月的第一天,它由“h”表示。 例如,2008年3月的日历(错误)如下所示: 这是我的代码:

  • 问题内容: 我只找到了Joda Time的解决方案。 仅当最后一天不在第一周时,我的解决方案才有效: 那么在Java Time中(例如在Joda Time中)正确的方法是什么? 问题答案: 可使用API 直接获得此信息。 关键方法已启用。它允许您获得一个为字段提供最小值和最大值的对象,并通过传入的时间对象对其进行优化。 要了解一年中有多少ISO周,请执行以下操作: 请注意,您传递的日期用于确定答案