@DmitryBychenko的答案很好,尽管如果你不想循环,你也可以计算它:
var calendar = new HebrewCalendar();
var result = DateTime.UtcNow;
if(
calendar.GetMonth(result) < 3
|| (calendar.GetMonth(result)==3 && calendar.GetDayOfMonth(result)<25)
)
result = new DateTime(calendar.GetYear(result), 3, 25, calendar);
else
result = new DateTime(calendar.GetYear(result)+1, 3, 25, calendar);
Run Code Online (Sandbox Code Playgroud)
如果您的 25/3 以下HebrewCalendar,请使用今年,否则使用下一个
结果也是公历2015年12月7日
如果(根据评论)您出于某种原因不想使用那些讨厌的 if语句,您可以执行以下操作:
var calendar = new HebrewCalendar();
var result = DateTime.UtcNow;
var addYear = (calendar.GetMonth(result) < 3 || (calendar.GetMonth(result)==3 && calendar.GetDayOfMonth(result)<25)) ? 0 : 1;
result = new DateTime(calendar.GetYear(result) + addYear, 3, 25, calendar);
Run Code Online (Sandbox Code Playgroud)
我认为这对可读性没有帮助,但你就可以了