C# 什么';设置两个不同月份的日期的最佳方法是什么?
我试图呈现一个视图,该视图显示两个日期之间的一些记录,当未传递任何参数时,该视图必须显示一个月的记录,从第5天开始,直到下个月的下一个第5天 现在我做到了,但我很关心我的代码,有没有其他方法可以做到这一点,我的意思是,让我的代码看起来更好C# 什么';设置两个不同月份的日期的最佳方法是什么?,c#,datetime,C#,Datetime,我试图呈现一个视图,该视图显示两个日期之间的一些记录,当未传递任何参数时,该视图必须显示一个月的记录,从第5天开始,直到下个月的下一个第5天 现在我做到了,但我很关心我的代码,有没有其他方法可以做到这一点,我的意思是,让我的代码看起来更好 var dateStart = new DateTime(); var dateEnd = new DateTime(); if(dateTime !=null) { dateStart = Convert.ToDateTime(dateTim
var dateStart = new DateTime();
var dateEnd = new DateTime();
if(dateTime !=null)
{
dateStart = Convert.ToDateTime(dateTime);
dateEnd = new DateTime(dateStart.Year, dateStart.Month + 1, 5);
}
else
{
if (DateTime.Today.Day <= 4)
{
DateTime lastMonth = DateTime.Today.AddMonths(-1);
dateStart = new DateTime(lastMonth.Year, lastMonth.Month, 5);
dateEnd = new DateTime(dateStart.Year, dateStart.Month + 1, 5);
}
DateTime date = DateTime.Today;
dateStart = new DateTime(date.Year, date.Month, 5);
dateEnd = new DateTime(date.Year, date.Month + 1,5);
}
var dateStart=new DateTime();
var dateEnd=new DateTime();
if(dateTime!=null)
{
dateStart=Convert.ToDateTime(日期时间);
dateEnd=新的日期时间(dateStart.Year,dateStart.Month+1,5);
}
其他的
{
如果(DateTime.Today.Day您不应该添加这样的月份,因为在12月它试图创建一个月为13的DateTime时,您将得到无效的DateTime
,因此我将使用AddMonths
方法。您似乎还需要添加另一个else语句
以便第二个if语句
不是无关紧要的。我稍微简化了代码,这就是你的意思吗
var dateStart = new DateTime();
var dateEnd = new DateTime();
if(dateTime !=null)
{
dateStart = Convert.ToDateTime(dateTime);
dateEnd = new DateTime(dateStart.Year, dateStart.Month, 5).AddMonths(1);
}
else
{
if (DateTime.Today.Day <= 4)
{
dateStart = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 5).AddMonths(-1);
dateEnd = dateStart.AddMonths(1);
}
else
{
dateStart = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 5);
dateEnd = dateStart .AddMonths(1);
}
}
var dateStart=new DateTime();
var dateEnd=new DateTime();
if(dateTime!=null)
{
dateStart=Convert.ToDateTime(日期时间);
dateEnd=新的日期时间(dateStart.Year,dateStart.Month,5).AddMonths(1);
}
其他的
{
如果(DateTime.Today.Day这将在12月份引发异常:
dateEnd = new DateTime(dateStart.Year, dateStart.Month + 1, 5);
您可以尝试:
DateTime dateEnd = dateStart.AddMonths(1);
dateEnd = new DateTime(dateEnd.Year, dateEnd.Month, 5);
你可能还想检查代码是否正确。你测试过了吗?你的else部分不起作用。你总是覆盖在if(DateTime.Today.Day)中计算的值,[entity framework]标记的作用是什么?@evanmcdonnal我不同意,12月份使用此方法会给你13个月,这将导致“不可表示的日期时间”exception@GertArnold很抱歉,删除了那个标签,非常感谢你的更正,加上我没有想到的几个月!