110,536
社区成员
发帖
与我相关
我的任务
分享
using System;
using System.Collections.Generic;
using System.Text;
namespace Test
{
class Program
{
static void Main(string[] args)
{
DateTime tmBegin = new DateTime(2009, 11, 11);
DateTime tmEnd = new DateTime(2010, 1, 10);
int y, m, d;
TimeSpan ts;
DateTime newBeg;
y = tmEnd.Year;
m = (tmEnd.Year - tmBegin.Year) * 12 + tmEnd.Month - tmBegin.Month;
if ((int)tmEnd.Day >= (int)tmBegin.Day)
{
d = tmEnd.Day - tmEnd.Day;
}
else
{
m -= 1;
if ((int)tmEnd.Month == 1)
{
int newM;
y -= 1;
newM = 12;
newBeg = new DateTime(y, newM, tmEnd.Day);
}
else
{
newBeg = tmEnd.AddMonths(-1);
}
ts = tmEnd - newBeg;
d = (int)ts.TotalDays-1;
}
Console.WriteLine("相差{0}个月外加{1}天", m.ToString(),d.ToString());
Console.ReadKey();
}
}
}
/// <summary>
/// 两个日期相减 得到 月数 和 畸零天数
/// </summary>
/// <param name="start"></param>
/// <param name="end"></param>
/// <returns></returns>
private static string DateDiff(DateTime start, DateTime end)
{
string dateDiff = null;
try
{
DateTime end1;
int date = (end - start).Days;
int date1 = 0;
if (start.Day <= end.Day)
{
end1 = new DateTime(end.Year, end.Month, start.Day);
}
else
{
end1 = new DateTime(end.Year, end.Month - 1, start.Day);
}
date1 = (end1 - start).Days;
dateDiff = ((end1.Year - start.Year) * 12 + end1.Month - start.Month).ToString() + ";" + (date - date1).ToString();
}
catch (Exception ex)
{
dateDiff = null;
}
return dateDiff;
}