计算日期间相差月数

public int GetMonths(DateTime from, DateTime to)
{
int years = to.Year - from.Year;
int months = to.Month - from.Month;
int days = to.Day - from.Day;
if (days < 0)
months = months - 1;
return years * 12 + months;
}

此方法只精确到日期,如果要精确到时分秒,以此类推,只要后面的单位相减为负数,则上一个单位就-1.

时间: 2024-08-04 12:06:31

计算日期间相差月数的相关文章

计算两日期间2月29日总数的Java程序

事先声明,本人仅仅是个计算机领域的新手,不久前开始学习Java.后来我接到了一份关于计算两日期间2月29日总数的编程作业,仓促之中我便写下了这个程序.由于之前可以说毫无编程经验,Java也仅仅是只学了一小部分.所以目前该程序尚未解决输入问题. 我解决这个问题的思路是: 编写一个方法(leapYear)用于判断某一年份是否为闰年: 编写另一个方法(dateExist)用于判断某一时期是否真实存在,在这方法中会引用到上个方法: 最后编写main方法,引用方法(dateExist)分别判断起始日期和终

Java 计算两个日期相差月数、天数

package com.myjava; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; public class MyCalendar { /** * @param args * @throws ParseException */ public static void main(String[] args) throws ParseException {

MySQL计算两个日期相差的天数、月数、年数

MySQL自带的日期函数TIMESTAMPDIFF计算两个日期相差的秒数.分钟数.小时数.天数.周数.季度数.月数.年数,当前日期增加或者减少一天.一周等等. SELECT TIMESTAMPDIFF(类型,开始时间,结束时间) 相差的秒数: SELECT TIMESTAMPDIFF(SECOND,'1993-03-23 00:00:00',DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%S')) 相差的分钟数: SELECT TIMESTAMPDIFF(MINUTE,'

Java 两个日期间的天数计算

在Java中计算两个日期间的天数,大致有2种方法:一是使用原生JDK进行计算,在JDK8中提供了更为直接和完善的方法:二是使用第三方库. 1.使用原生的JDK [java] view plain copy print? private static long daysBetween(Date one, Date two) { long difference =  (one.getTime()-two.getTime())/86400000; return Math.abs(difference)

java 日期加减天数、月数、年数的计算方式

因为某个项目需要统计 近1周.近1个月.近6个月 等数据,所以在时间的加减上面想了很多方式,最后决定用java.util.Calendar java.util.Calendar ,提供了计算时间的方式, Calendar.DATE  : 代表天数 Calendar.WEDNESDAY: 代表周数 Calendar.MONTH : 代表月数 Calendar.YEAR :代表年数 具体计算方式如下: 1. 计算近一周的日期,也就是得出过去7天的时间段,如今天2015-07-21  ,一个星期前那就

输入一个日期,判断这个日期在一年中是哪一天,是星期几,计算两个日期间的天数,使用字符串输出日期

之前写了一个博文(http://blog.csdn.net/shiwazone/article/details/45053739)是用基本函数实现的,这次使用类的设计方法,也就是面向对象的方法改写一下,并加入了日期转换成字符串的实现.这里的程序也可以解决编程珠玑习题3.4的问题. #include"calendar.h" int main() { Time t; t.initialTime(); t.Show(); t.StrShow(); Time t1; t1.initialTim

Java计算两个时间的天数差与月数差 LocalDateTime

/**  * 计算两个时间点的天数差  * @param dt1 第一个时间点  * @param dt2 第二个时间点  * @return int,即要计算的天数差  */ public static int dateDiff(LocalDateTime dt1,LocalDateTime dt2){  //获取第一个时间点的时间戳对应的秒数  long t1 = dt1.toEpochSecond(ZoneOffset.ofHours(0));  //获取第一个时间点在是1970年1月1日

【统计商户24个月连续流水总月数存储过程】

[统计商户24个月连续流水总月数存储过程]删除存储过程SQL> drop procedure checklen; Procedure dropped创建存储过程SQL> CREATE OR REPLACE PROCEDURE checklen(val in varchar2,resultval out number) as    maxlen number;    nowlen number;    begin    maxlen := 0;    nowlen := 0;        fo

oracle中用SQL实现两个日期间的日期形成一个数据集

比如输入2014-06-1 和 2014-07-1形成一个2014-06-1 2014-06-22014-06-3...2014-07-1 的数据集. 解决方法: select date'2014-06-01'+rownum-1 as my_numbersfrom dualconnect by level <= (date'2014-07-01' - date'2014-06-01') + 1 date 和to_date功能一样 select to_date('2014-06-01','yyyy