如何根据年份和月份获取本月的天数

//测试是否通过..
public static void main(String[] args) {
System.out.println(findMaxDayInMonth(2012, 2));
}
public static int findMaxDayInMonth(int year, int month) {
//获取calendar实例
Calendar calendar = Calendar.getInstance();
//在set之前需要先clear,否则有时会默认系统时间
calendar.clear();
if (year > 0) {
calendar.set(Calendar.YEAR, year);
}
if (month > 0) {
//注意:calendar的1月为0,所以set时应该-1
calendar.set(Calendar.MONTH, month-1);
}
return findMaxDayInMonth(calendar);
}


public static int findMaxDayInMonth(Calendar calendar) {
if (calendar == null) {
return 0;
}
// 得到实际月份的最大天数。
return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
}
1 按照某种格式输出系统时间:自学java中的时间。自学Date类(java.util.Date)和SimpleDateFormat类,用程序输出“当前时间是XXXXXXXX日XX时XX分XX秒(第XX周,周X)” 2 比较StringStringBuffer、StringBuilder的自增速度。方法:在自增前记录系统时间,进行5000次自增,然后再记录系统时间,可以得出自增的速度。获取系统时间的方法是java.lang.System.currentTimeMillis() ,见JDK API。 3 定义点类,圆是由圆心(点)和半径组成的,请完成圆类,注意“派”为常量,取3.14。圆类具有judge函数可以判断两圆的关系:相离、相交(包括相切)、嵌套、重合。设计static成员用以求所有圆对象的平均面积。(static、final) 4 图形间的关系可以下图用来表现。所有的图形中都可以称为Shape。由这个类可以派生出二维图形TwoDimensionalShape和三维图形ThreeDimensionalShape类。每个TwoDimensionalShape类应包括成员函数getArea以计二维图形的面积。每个ThreeDimensionalShape类包含成员函数getArea和getVolume,分别计三维图形的表面积和体积。编写一个程序,用一个数组乘放各种图形类对象(包括二维和三维的),并输出对象得相应信息。如果某个图形是TwoDimensionalShape就显示其面积,如果某个图形是ThreeDimenionalShape,则显示其面积和体积。请完成图中所有的类并在主函数中做测试。(继承与多态)
### 回答1: 根据给定的年份月份,可以使用以下方法获取月份天数: 1. 判断年份是否为闰。闰的判断方法是:能被4整除但不能被100整除,或者能被400整除的年份为闰。 2. 根据月份判断天数。对于大(1、3、5、7、8、10、12),天数为31天;对于小(4、6、9、11),天数为30天;对于2,如果是闰则为29天,否则为28天。 3. 特殊情况:如果给定的月份为2,且年份为闰,则天数为29天;否则为28天。 综上所述,可以根据以上方法获取给定年份月份天数。 ### 回答2: 计一个有多少天是一件相对简单的事情。然而,此问题还是有一定复杂性。在日常生活中,我们默认一有365天,一个有30或31天。但是,这种假设是不完全准确的。 简单来说,一个天数是由地球公转和自转两个过程相互影响而定的。1有365天5小时48分钟45秒,这个时间叫做「回归」。然而,我们常见的日历是以365天作为一的长度,四一次加入一个闰来弥补这个差距。这意味着每比回归短约6小时。 我们通常使用以下规则来划分一中的天数: - 平有365天,2有28天。 - 闰有366天,2有29天。 确定是否为闰的条件是:该年份是4的倍数但不是100的倍数,或者是400的倍数。 在计一个给定月份天数时,首先需要确定该月份所处的年份是否为闰。然后根据月份确定天数。其中,1、3、5、7、8、10和12有31天;4、6、9和11有30天;2在平中有28天,在闰中有29天。 总之,根据给定的年份月份,要获取月份天数,需要通过以上规则来计。这是一个比较基本的问题,但我们需要考虑的因素还是比较多,需要对规则和日历有一定的了解才能确定正确的答案。 ### 回答3: 获取一个月份天数需要考虑年份月份。大部分月份天数是固定的,但二月份天数和闰相关。因此,我们需要先确定给出的年份是否为闰,再根据月份给出天数。 首先,闰的定义是可以被4整除的年份,但是能被100整除的年份不是闰,除非该年份能被400整除。因此,我们可以通过如下代码判断给出的年份是否为闰: ``` def is_leap_year(year): if year % 400 == 0: return True elif year % 100 == 0: return False elif year % 4 == 0: return True else: return False ``` 接下来,我们可以通过一个字典来存储每个月份天数: ``` month_days = {1: 31, 2: 28, 3: 31, 4: 30, 5: 31, 6: 30, 7: 31, 8: 31, 9: 30, 10: 31, 11: 30, 12: 31} ``` 如果给出的月份为二月份,我们需要判断是否是闰。如果是闰则该月份为29天,否则为28天: ``` if month == 2: if is_leap_year(year): return 29 else: return 28 ``` 如果给出的月份不是二月份,则从字典中按照月份对应的天数返回即可: ``` return month_days[month] ``` 综上所述,我们可以将以上代码组合成一个函数: ``` def get_month_days(year, month): month_days = {1: 31, 2: 28, 3: 31, 4: 30, 5: 31, 6: 30, 7: 31, 8: 31, 9: 30, 10: 31, 11: 30, 12: 31} if month == 2: if is_leap_year(year): return 29 else: return 28 else: return month_days[month] ``` 这样,我们就可以通过给定的年份月份获取月份天数了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值