计算下个生日的月数,

时间:2015-09-15 02:47:27

标签: c# date

我有一个代码,通过该代码,我可以找到下一个生日的唯一天数,但我不仅需要几天,还需要一个月。

        DateTime birthday=dtp.Value;
        DateTime td = DateTime.Today;
        DateTime next = new DateTime(td.Year, birthday.Month, birthday.Day);

        if (next < td)
        {
            next = next.AddYears(1);
        }

        int d = (next - td).Days;`

如果我的出生日期是1994年10月29日,那么我将获得44天(剩余天数),但我希望1个月和14天作为输出

请帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

试试这个:

os.rename

在“int d ...”行之前插入。它应该给你几个月,你的日计算应该&lt;一个月。

答案 1 :(得分:0)

问题是,那个&#34;一个月&#34;不是&#34;一个月&#34;但是在28到31之间的天数。

但是,通过应用AddMonths,您可以非常接近统一且有用的方法:

DateTime birthday = new DateTime(1980, 11, 19);
DateTime today = DateTime.Today;
int months = 0;
int days = 0;

DateTime nextBirthday = birthday.AddYears(today.Year - birthday.Year);
if (nextBirthday < today)
{
    nextBirthday = nextBirthday.AddYears(1);
}

while (today.AddMonths(months + 1) <= nextBirthday)
{
    months++;
}
days = nextBirthday.Subtract(today.AddMonths(months)).Days;

Console.WriteLine("Next birthday is in {0} month(s) and {1} day(s).", months, days);

结果:

Next birthday is in 2 month(s) and 4 day(s).