[英]c# The difference between two user input dates in months and years
我正在使用以下代码:
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());
}
我还无法弄清楚如何计算两个日期之间月份和年份的差异。 有人可以帮忙吗? 另外,如何使程序每次都返回一个正整数?
这是对问题的第一部分的答案,计算了年份和月份中两个日期之间的差异(以及天,为什么不这样)。 这个问题有点模棱两可,所以我做了一些假设。
就像我在计算年龄时通常所说的“差异”一样。 如,如果起始日期是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++;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.