计算两个日期相差几年几个月
public static class dateTimeDiff
{
/// <summary>
/// 计算日期间隔
/// </summary>
/// <param name="d1">要参与计算的其中一个日期字符串</param>
/// <param name="d2">要参与计算的另一个日期字符串</param>
/// <returns>一个表示日期间隔的TimeSpan类型</returns>
public static TimeSpan toResult(string d1, string d2)
{
try
{
DateTime date1 = DateTime.Parse(d1);
DateTime date2 = DateTime.Parse(d2);
return toResult(date1, date2);
}
catch
{
throw new Exception("字符串参数不正确!");
}
}
/// <summary>
/// 计算日期间隔
/// </summary>
/// <param name="d1">要参与计算的其中一个日期</param>
/// <param name="d2">要参与计算的另一个日期</param>
/// <returns>一个表示日期间隔的TimeSpan类型</returns>
public static TimeSpan toResult(DateTime d1, DateTime d2)
{
TimeSpan ts;
if (d1 > d2)
{
ts = d1 - d2;
}
else
{
ts = d2 - d1;
}
return ts;
}
/// <summary>
/// 计算日期间隔
/// </summary>
/// <param name="d1">要参与计算的其中一个日期字符串</param>
/// <param name="d2">要参与计算的另一个日期字符串</param>
/// <param name="drf">决定返回值形式的枚举</param>
/// <returns>一个代表年月日的int数组,具体数组长度与枚举参数drf有关</returns>
public static int[] toResult(string d1, string d2, diffFormat drf)
{
try
{
DateTime date1 = DateTime.Parse(d1);
DateTime date2 = DateTime.Parse(d2);
return toResult(date1, date2, drf);
}
catch
{
throw new Exception("字符串参数不正确!");
}
}
/// <summary>
/// 计算日期间隔
/// </summary>
/// <param name="d1">要参与计算的其中一个日期</param>
/// <param name="d2">要参与计算的另一个日期</param>
/// <param name="drf">决定返回值形式的枚举</param>
/// <returns>一个代表年月日的int数组,具体数组长度与枚举参数drf有关</returns>
public static int[] toResult(DateTime d1, DateTime d2, diffFormat drf)
{
#region 数据初始化
DateTime max;
DateTime min;
int year;
int month;
int tempYear, tempMonth;
if (d1 > d2)
{
max = d1;
min = d2;
}
else
{
max = d2;
min = d1;
}
tempYear = max.Year;
tempMonth = max.Month;
if (max.Month < min.Month)
{
tempYear--;
tempMonth = tempMonth + 12;
}
year = tempYear - min.Year;
month = tempMonth - min.Month;
#endregion
#region 按条件计算
if (drf == diffFormat.Day)
{
TimeSpan ts = max - min;
return new int[] { ts.Days };
}
if (drf == diffFormat.Month)
{
return new int[] { month + year * 12 };
}
if (drf == diffFormat.Year)
{
return new int[] { year };
}
return new int[] { year, month };
#endregion
}
}
/// <summary>
/// 关于返回值形式的枚举
/// </summary>
public enum diffFormat
{
/// <summary>
/// 年数和月数
/// </summary>
YearMonth,
/// <summary>
/// 年数
/// </summary>
Year,
/// <summary>
/// 月数
/// </summary>
Month,
/// <summary>
/// 天数
/// </summary>
Day,
}
例:
DateTime dt1 = DateTime.Parse(dt.Rows[0]["mtime"].ToString());
DateTime dt2 = DateTime.Parse(dt.Rows[count - 1]["mtime"].ToString());
int[] kk = dateTimeDiff.toResult(dt1, dt2, diffFormat.Month);
本文转自94cool博客园博客,原文链接:http://www.cnblogs.com/94cool/archive/2011/06/13/2079795.html,如需转载请自行联系原作者
计算两个日期相差几年几个月相关推荐
- 计算两个日期相差 几年几个月几日
@创建于:20211117 文章目录 1.背景 2.代码示例 2.1 代码 2.1 输出结果 3.结果讨论 1.背景 经常遇到两个日期之间相差多个年,多少月,多少日. 方式1:使用datetime d ...
- 计算两个日期相差的小时差
计算出:两个日期之间的相差天数,乘小时数 <%@ page language="java" import="java.util.*" pageEncodi ...
- 计算两个日期相差的天数
JavaBean类 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calen ...
- java计算两个日期相差月数
1.计算两个日期相差月数,不满一月按一月算 import java.text.ParseException; import java.text.SimpleDateFormat; import jav ...
- mysql 查出相差年数_MySQL计算两个日期相差的天数、月数、年数
MySQL自带的日期函数TIMESTAMPDIFF计算两个日期相差的秒数.分钟数.小时数.天数.周数.季度数.月数.年数,当前日期增加或者减少一天.一周等等. SELECT TIMESTAMPDIFF ...
- java 日期只计算年月日大小_Java 计算两个日期相差多少年月日
JDK7及以前的版本,计算两个日期相差的年月日比较麻烦. JDK8新出的日期类,提供了比较简单的实现方法. /*** 计算2个日期之间相差的 相差多少年月日 * 比如:2011-02-02 到 201 ...
- java 计算日期相差天数_Java 计算两个日期相差的天数
当我们需要计算两个日期相差的天数怎么办呢,今天我们就来用 Java 比较两个日期相差的天数,最简单的方法,直接上代码: 第一种,Date类型计算public static int differentD ...
- python判断天数_Python计算两个日期相差天数的方法示例
本文实例讲述了Python计算两个日期相差天数的方法.分享给大家供大家参考,具体如下: #!/usr/bin/python import time import sys def dateinput() ...
- mysql计算两个月份之间的差值_MySQL计算两个日期相差的天数、月数、年数
MySQL自带的日期函数TIMESTAMPDIFF计算两个日期相差的秒数.分钟数.小时数.天数.周数.季度数.月数.年数,当前日期增加或者减少一天.一周等等. SELECT TIMESTAMPDIFF ...
最新文章
- 20 年前毁誉参半的网游《传奇》,背后是怎样的故事?
- g++ 安装python_mac编译安装faiss
- 【iOS数据持久化】偏好设置(UserDefaults)
- hdu 4101(bfs+博弈)
- 用PHP删除一条记录mysql,php – 如何使用jquery删除mysql记录
- 对刺客历史的一种颠覆:说说《最后的刺客》
- Qt 调用Python引擎混合编程
- 原子变量与非阻塞同步机制
- <EDEM 常见问题01>EDEM 2018-Fluent 17.0 耦合接口编译(快速上手版)
- 自学WEB开发第一天:工欲善其事,必先利其器。基于VB语言,纠结于VS和VS code之间
- TP笔记5、模型 文件上传 分页 会话技术与验证码
- hdu 4365 瞎涂颜色 数论
- 大话西游手游服务器地址修改,大话西游手游怎么转区?大话西游手游转区移民条件一览...
- 2022-2028年中国保健食品行业市场运营格局及前景战略分析报告
- UIImageView 显示不规则图片,类似微信聊天气泡图片展示效果
- python画狗_Python 画一只单身狗作为情人节礼物
- 网上跨行转账将实时生效 第三方支付前景渺茫
- 安装失败,CentOS 7 安装 安卓模拟器
- Unity中OnTriggerEnter2D 和OnCollisionEnter2D 的使用情形及容易掉的坑
- 给中国学生的第三封信