[英]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.