关于c#:更改迄今为止的天数

change a number of days to date

如何用C语言中的datetime类将天数更改为(年、月和日)#实际上,我想用生日来计算确切的出生日期。?年?月…秒。

我的代码:

1
2
3
4
5
DateTime a = new DateTime(1993, 6, 10, 0, 0, 0);
            DateTime now = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour
                ,DateTime.Now.Minute,DateTime.Now.Second);
            TimeSpan b = now - a;
            int c = b.Days;


你可以使用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.