python 计算两个日期相差多少个月

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 计算两个日期相差多少个月相关的知识,希望对你有一定的参考价值。

不同意最佳回答的看法。题主只是问怎么计算, 并没有要求用什么方法, 现成模块也是别人写的, 我们也可以自己造轮子不是?

# coding=utf-8
import datetime
x = datetime.datetime(2011, 12, 20)

y = datetime.datetime(2014, 10, 13)


def month_differ(x, y):
    """暂不考虑day, 只根据month和year计算相差月份
    Parameters
    ----------
    x, y: 两个datetime.datetime类型的变量

    Return
    ------
    differ: x, y相差的月份
    """
    month_differ = abs((x.year - y.year) * 12 + (x.month - y.month) * 1)
    return month_differ


print(month_differ(x, y))

参考技术A python没有直接调用方法计算月数的模块。。。time,datetime,calendar都没有

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

在JAVA中如何算出两段时间之间相差的月数 ,
比如2009-12-10到2010-5-10之间相差多少个月 怎么搞 啊 ??急!急!急!

/** * 计算两个日期之间相差的月数 * * @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;
参考技术A 用字符串截取两个时间的月份再相减
int first=time1.indexOf("-");
int last=time1.lastIndexOf("-");
int month1=time1.subString(first+1,last);//第一个时间的月份,第二个如上,再相减。
参考技术B public static int calculateMonthIn(Date date1, Date date2)
Calendar cal1 = new GregorianCalendar();
cal1.setTime(date1);
Calendar cal2 = new GregorianCalendar();
cal2.setTime(date2);
int c =
(cal1.get(Calendar.YEAR) - cal2.get(Calendar.YEAR)) * 12 + cal1.get(Calendar.MONTH)
- cal2.get(Calendar.MONTH);
return c;
本回答被提问者采纳
参考技术C 翻翻api,肯定有这么个方法,不用自个写的

以上是关于python 计算两个日期相差多少个月的主要内容,如果未能解决你的问题,请参考以下文章

计算两个时间相差多少年月日的sql算法

java计算两个时间之间多少个月

SQL 获取两个日期相差几个月,要精确到日

php 计算两个日期相隔多少年,多少月,多少天

js 两个日期间隔月数

js 怎么求两个日期相差几个月零几天?