我正在使用以下代码:
static void Main(string[] args)
{
Dates();
Console.ReadLine();
}
public static void Dates()
{
Console.WriteLine("Enter any date: ");
DateTime firstDate = DateTime.Parse(Console.ReadLine());
Console.WriteLine("Enter another date: ");
DateTime secondDate = DateTime.Parse(Console.ReadLine());
TimeSpan diff = firstDate - secondDate;
Console.WriteLine("Days : " + diff.TotalDays.ToString());
Console.WriteLine("Hours : " + diff.TotalHours.ToString());
Console.WriteLine("Minutes : " + diff.TotalMinutes.ToString());
}
我无法弄清楚如何计算两个日期之间的月份和年份的差异。有人可以帮忙吗?另外,如何让程序每次都返回一个正整数?
答案 0 :(得分:0)
这是对问题第一部分的回答,计算年和月的两个日期之间的差异(以及日期,为什么不是)。这个问题有些含糊不清,所以我做了一些假设。
就像,我采取了差异'当我们计算年龄时,我们通常是指。如果,如果开始日期为5/12/2014
且结束日期为2/16/2017
,则我将差值计算为2 years, 9 months, and 3 days
。你得到漂移。
其次,我没有考虑一天中的时间。如同我创建DateTime
对象时仅指定year,
个月, and
天。
所以这里是:
public static void DateTimeDiff(DateTime dt1, DateTime dt2, out int years, out int months, out int days)
{
DateTime start = dt1 < dt2 ? dt1 : dt2;
DateTime end = dt2 > dt1 ? dt2 : dt1;
years = 0;
months = 0;
days = 0;
while (start.AddYears(1) < end)
{
start = start.AddYears(1);
years++;
}
while (start.AddMonths(1) < end)
{
start = start.AddMonths(1);
months++;
}
while (start.AddDays(1) < end)
{
start = start.AddDays(1);
days++;
}
}