java比较两个时间相差几个月,java计算两个日期相差几个月

本文目录一览:

在JAVA中如何算出两段时间相差的月数 ,

/** * 计算两个日期之间相差的月数 * * @param date1 * @param date2 * @return */ public static int getMonths(Date date1, Date date2) { int iMonth = 0; int flag = 0; try { Calendar objCalen

/**

* 计算两个日期之间相差的月数

*

* @param date1

* @param date2

* @return

*/

public static int getMonths(Date date1, Date date2) {

int iMonth = 0;

int flag = 0;

try {

Calendar objCalendarDate1 = Calendar.getInstance();

objCalendarDate1.setTime(date1);

Calendar objCalendarDate2 = Calendar.getInstance();

objCalendarDate2.setTime(date2);

if (objCalendarDate2.equals(objCalendarDate1))

return 0;

if (objCalendarDate1.after(objCalendarDate2)) {

Calendar temp = objCalendarDate1;

objCalendarDate1 = objCalendarDate2;

objCalendarDate2 = temp;

}

if (objCalendarDate2.get(Calendar.DAY_OF_MONTH) objCalendarDate1

.get(Calendar.DAY_OF_MONTH))

flag = 1;

if (objCalendarDate2.get(Calendar.YEAR) objCalendarDate1

.get(Calendar.YEAR))

iMonth = ((objCalendarDate2.get(Calendar.YEAR) – objCalendarDate1

.get(Calendar.YEAR))

* 12 + objCalendarDate2.get(Calendar.MONTH) – flag)

– objCalendarDate1.get(Calendar.MONTH);

else

iMonth = objCalendarDate2.get(Calendar.MONTH)

– objCalendarDate1.get(Calendar.MONTH) – flag;

} catch (Exception e) {

e.printStackTrace();

}

return iMonth;

}

java 计算两个日期相差了几个月

有两种方式,一种先将两个日期转换为long类型的毫秒数(从1970.1.1凌晨到时间点的毫秒数),然后求差diff,相差的月份:1.0*diff/1000/3600/30;还有一种使用jdk提供的Calendar日历类

Java 计算两个日期相差月数

pre name=”code” class=”java” /**

* 计算两个日期之间相差的月数

* @param date1

* @param date2

* @return

*/

private int getMonths(Date date1, Date date2){

int iMonth = 0;

int flag = 0;

try{

Calendar objCalendarDate1 = Calendar.getInstance();

objCalendarDate1.setTime(date1);

Calendar objCalendarDate2 = Calendar.getInstance();

objCalendarDate2.setTime(date2);

if (objCalendarDate2.equals(objCalendarDate1))

return 0;

if (objCalendarDate1.after(objCalendarDate2)){

Calendar temp = objCalendarDate1;

objCalendarDate1 = objCalendarDate2;

objCalendarDate2 = temp;

}

if (objCalendarDate2.get(Calendar.DAY_OF_MONTH) objCalendarDate1.get(Calendar.DAY_OF_MONTH))

flag = 1;

if (objCalendarDate2.get(Calendar.YEAR) objCalendarDate1.get(Calendar.YEAR))

iMonth = ((objCalendarDate2.get(Calendar.YEAR) – objCalendarDate1.get(Calendar.YEAR))

* 12 + objCalendarDate2.get(Calendar.MONTH) – flag)

– objCalendarDate1.get(Calendar.MONTH);

else

iMonth = objCalendarDate2.get(Calendar.MONTH)

– objCalendarDate1.get(Calendar.MONTH) – flag;

} catch (Exception e){

e.printStackTrace();

}

return iMonth;

} /pre

java 求两个日期差几个月

import java.util.Date;

import java.util.Calendar;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.io.PrintStream;

public class DateDiffMonth{

public static void main(String [] argv) throws Exception {

System.out.println(getMonthDiff(“1900-10-21”, “1901-01-01”));

}

/**

* 得到两日期相差几个月

*

* @param String

* @return

*/

public static long getMonthDiff(String startDate, String endDate) throws ParseException {

long monthday;

SimpleDateFormat fmt = new SimpleDateFormat(“yyyy-MM-dd”);

Date startDate1 = fmt.parse(startDate);

Calendar starCal = Calendar.getInstance();

starCal.setTime(startDate1);

int sYear = starCal.get(Calendar.YEAR);

int sMonth = starCal.get(Calendar.MONTH);

int sDay = starCal.get(Calendar.DAY_OF_MONTH);

Date endDate1 = fmt.parse(endDate);

Calendar endCal = Calendar.getInstance();

endCal.setTime(endDate1);

int eYear = endCal.get(Calendar.YEAR);

int eMonth = endCal.get(Calendar.MONTH);

int eDay = endCal.get(Calendar.DAY_OF_MONTH);

monthday = ((eYear – sYear) * 12 + (eMonth – sMonth));

//这里计算零头的情况,根据实际确定是否要加1 还是要减1

if (sDay eDay) {

monthday = monthday + 1;

}

return monthday;

}

}

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比较两个时间相差多少天,多少个月,多少年

首先全部转换成毫秒数,然后相减,再除以(1000*60*60*24)得到的是天数!想要月数就再除以30得到的就是月数!想要年数就除以365得到的就是年数了,

原创文章,作者:KHLGR,如若转载,请注明出处:https://www.506064.com/n/329497.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
KHLGRKHLGR
上一篇 2025-01-14 18:55
下一篇 2025-01-14 18:55

相关推荐

  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • 利用Python实现两个链表合并为一个有序链表

    对于开发工程师来说,实现两个链表合并为一个有序链表是必须掌握的技能之一。Python语言在链表处理上非常便利,本文将从多个方面详细阐述如何利用Python实现两个链表合并为一个有序…

    编程 2025-04-29
  • 解决docker-compose 容器时间和服务器时间不同步问题

    docker-compose是一种工具,能够让您使用YAML文件来定义和运行多个容器。然而,有时候容器的时间与服务器时间不同步,导致一些不必要的错误和麻烦。以下是解决方法的详细介绍…

    编程 2025-04-29
  • Python定义两个列表的多面探索

    Python是一种强大的编程语言,开放源代码,易于学习和使用。通过Python语言,我们可以定义各种数据类型,如列表(list)。在Python中,列表(list)在处理数据方面起…

    编程 2025-04-29
  • Python获取当前日期的多种方法

    本文介绍如何使用Python获取当前日期,并提供了多种方法,包括使用datetime模块、time模块以及第三方库dateutil等。让我们一步一步来看。 一、使用datetime…

    编程 2025-04-29
  • 想把你和时间藏起来

    如果你觉得时间过得太快,每天都过得太匆忙,那么你是否曾经想过想把时间藏起来,慢慢享受每一个瞬间?在这篇文章中,我们将会从多个方面,详细地阐述如何想把你和时间藏起来。 一、一些时间管…

    编程 2025-04-28
  • Python按照日期画折线图

    本文将为您详细介绍如何使用Python按照日期(时间)来画折线图。 一、准备工作 首先,我们需要安装Matplotlib包,该包提供了各种绘图函数,包括折线图、柱形图、散点图等等。…

    编程 2025-04-28
  • Python两个线程交替打印1到100

    这篇文章的主题是关于Python多线程的应用。我们将会通过实际的代码,学习如何使用Python两个线程交替打印1到100。 一、创建线程 在Python中,我们可以使用Thread…

    编程 2025-04-28
  • 计算斐波那契数列的时间复杂度解析

    斐波那契数列是一个数列,其中每个数都是前两个数的和,第一个数和第二个数都是1。斐波那契数列的前几项为:1,1,2,3,5,8,13,21,34,…。计算斐波那契数列常用…

    编程 2025-04-28
  • leveldb和unqlite:两个高性能的数据库存储引擎

    本文将介绍两款高性能的数据库存储引擎:leveldb和unqlite,并从多个方面对它们进行详细的阐述。 一、leveldb:轻量级的键值存储引擎 1、leveldb概述: lev…

    编程 2025-04-28

发表回复

登录后才能评论