change a number of days to date
如何用C语言中的datetime类将天数更改为(年、月和日)#实际上,我想用生日来计算确切的出生日期。?年?月…秒。
我的代码:
1 2 3 4 5 |
你可以使用nodatimeP></
1 2 3 4 5 6 | var period = NodaTime.Period.Between( new NodaTime.LocalDateTime(1993, 6, 10, 0, 0), NodaTime.LocalDateTime.FromDateTime(DateTime.Now) ); Console.WriteLine("{0} {1} {2} {3} {4}",period.Years,period.Months,period.Days, period.Hours,period.Minutes); |
没有简单的function for this that I can see。这样做,这与简单的日期时间函数。如果我把它的尾巴,虽然它看起来,这样的东西:DP></
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | DateTime birthday = new DateTime(1993, 6, 10); DateTime current; DateTime nowComparison = DateTime.Now; int years = nowComparison.Year - birthday.Year; if (nowComparison < birthday.AddYears(years)) years -= 1; current = birthday.AddYears(years); // current is less than a year ago. int months; if(current.Year != nowComparison.Year) { months = nowComparison.Month + (12 - current.Month); } else { months = nowComparison.Month - current.Month; } if (nowComparison < current.AddMonths(months)) months -= 1; current = current.AddMonths(months); // current is less than a month ago. int days = nowComparison.Subtract(current).Days; current = current.AddDays(days); // current is less than a day ago. int hours = nowComparison.Subtract(current).Hours; current = current.AddHours(hours); // current is less than an hour ago. int minutes = nowComparison.Subtract(current).Minutes; current = current.AddMinutes(minutes); // current is less than a minute ago. int seconds = nowComparison.Subtract(current).Seconds; current = current.AddSeconds(seconds); // current is less than a second ago. |