「java计算月数」JAVA日期计算
本篇文章给大家谈谈java计算月数,以及JAVA日期计算对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
java计算两个时间之间多少个月
应该可以满足你的需求了
/**
*
* 计算两个日期相差的月份数
*
* @param date1 日期1
* @param date2 日期2
* @param pattern 日期1和日期2的日期格式
* @return 相差的月份数
* @throws ParseException
*/
public static int countMonths(String date1,String date2,String pattern) throws ParseException{
SimpleDateFormat sdf=new SimpleDateFormat(pattern);
Calendar c1=Calendar.getInstance();
Calendar c2=Calendar.getInstance();
c1.setTime(sdf.parse(date1));
c2.setTime(sdf.parse(date2));
int year =c2.get(Calendar.YEAR)-c1.get(Calendar.YEAR);
//开始日期若小月结束日期
if(year0){
year=-year;
return year*12+c1.get(Calendar.MONTH)-c2.get(Calendar.MONTH);
}
return year*12+c2.get(Calendar.MONTH)-c1.get(Calendar.MONTH);
}
Java里,如何得到一个月有多少天
按照你的要求,如何得到一个月有多少天,这里并没有说是什么年份,所以默认当年(不同年份的月份天数可能不一样,例如闰年的二月)
因此问题变为
输入条件:指定某一个月
输出结果:当年这个月份的天数
思路:在Java8里新的时间API里,月份已经被抽象成了枚举Month,所以可以把输入条件定义为枚举类型的Month,然后获取当前时间X,把时间X的月份修改为输入条件的月份,此时时间X变为X1,根据本身提供的方法lengthOfMonth就可以直接得到X1所在当月的天数了
代码:(请将JDK升到8)
public static void main(String[] args) {
System.out.println(countDaysInMonth(Month.MAY));
}
public static int countDaysInMonth(Month month){
// 获取当前时间
LocalDate now = LocalDate.now();
System.out.println(now);
// 把当前时间的月份修改为输入的月份
LocalDate thisMonthDate = now.withMonth(month.getValue());
System.out.println(thisMonthDate);
return thisMonthDate.lengthOfMonth();
}
也可以连着写,更美观点
public static int countDaysInMonth(Month month){
return LocalDate.now()
.withMonth(month.getValue())
.lengthOfMonth();
}
非常直观且易懂好用,在Java8里with就代表着修改意思,withMonth那就是修改月份,所以整个代码读下来就变成
获取当前时间A
修改A的月份为输入条件得到时间B
计算B所在月的天数
java 计算某月有多少天
这个题目的逻辑比较简单,先用数组记录出一年12个月每个月的天数,其中2月记录为28天,在判断当年是否是闰年,如果是闰年,将2月天数记录为29天,然后输入,例如数组month,输出month[m - 1],这就是这个月的天数了。
一个简单问题,Java里,如何得到一个月有多少天
给你2个方案:
方案1:
1、最简单的,就是定义一个数组,数组中[31,28,31,30.....]
2、然后取第几个月,直接通过月份的数字减去1做为下标来取上面的数组的数据就可以
3、2月份是特殊,所以如果取到2月份,加一个闰年判断
方案2:直接给你上代码吧,通过下面两个方法,你可以取到一个月的最后一天了,再把这天的日期格式化取最后2个数字出来,就是天数了
/**
* 得到当前月的最后一天
*
* @return
*/
public static Date getLastDayOfMonth(Date date) {
Calendar c = new GregorianCalendar();
c.setTime(date);
c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));
return toDate(c.getTime(),"yyyy-MM-dd");
}
/**
* add by chenxiaoping
*
* @字符串转日期
* @param strDate
* 字符串的日期
* @return Date 日期
*/
public static Date toDate(Date date, String strFormat) {
Date retDate = null;
SimpleDateFormat sdf = new SimpleDateFormat(strFormat);
try {
String str = sdf.format(date);
retDate = sdf.parse(str);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return retDate;
}
关于java计算月数和JAVA日期计算的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-28,除非注明,否则均为
原创文章,转载请注明出处。