Count the Number of Month,days of next Birthday
我有一个代码,通过它我可以找到下一个生日计数的唯一天数,但我不仅需要天,还需要月。
1 2 3 4 5 6 7 8 9 10 | 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天作为输出。
请帮我解决这个问题。
试试这个:
1 2 3 4 5 6 7 8 9 10 11 | int months = 0; for (; months< 12; ) { td = td.AddMonths(1); if (td > next) { td = td.AddMonths(-1); break; } months++; } |
这只是在你插入"int d……"线。它应该给你数月的天计算,你应该一个月有。
问题是,这是"一个月"是不是"一个月",但一天计数之间的28和31)。
然而,你可以得到很多的应用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 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); |
结果:
1 |