C# 来自'的无效强制转换;日期时间';至';Int32';
我正在尝试将我的datetimepicker设置为todays日期和选定的日期。然后将第二个选择器设置为明天的日期和选定的时间。我的问题是,尽管我调用了该方法,但它不会增加天数。如何更改此项以增加一天并保持所需的时间 如果删除转换,我会得到一个错误:C# 来自'的无效强制转换;日期时间';至';Int32';,c#,datetime,C#,Datetime,我正在尝试将我的datetimepicker设置为todays日期和选定的日期。然后将第二个选择器设置为明天的日期和选定的时间。我的问题是,尽管我调用了该方法,但它不会增加天数。如何更改此项以增加一天并保持所需的时间 如果删除转换,我会得到一个错误:System.DateTime.DateTime(int,int,int,int,int,int,int)的最佳重载方法匹配有一些无效参数 RadDateTimePicker1.SelectedDate = new DateTime(DateTime
System.DateTime.DateTime(int,int,int,int,int,int,int)的最佳重载方法匹配有一些无效参数
RadDateTimePicker1.SelectedDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 17, 30, 0);
RadDateTimePicker2.SelectedDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, Convert.ToInt32(DateTime.Now.AddDays(1)), 5, 30, 0);
我想你需要DateTime.Now.AddDays(1.Day)
new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.AddDays(1).Day, 5, 30, 0);
AddDays
方法返回一个新的DateTime
,不能将其转换为int
。只需使用属性获取新DateTime中的日期即可
更新:@UlugbekUmirov的评论是正确的,为了解决这个问题,您可以尝试:
var now = DateTime.Now;
DateTime first = new DateTime(now.Year,now.Month,now.Day, 17, 30, 0);
DateTime second;
if (now.Day == DateTime.DaysInMonth(now.Year, now.Month))
{
if(DateTime.Now.Month == 12)
second = new DateTime(now.Year+1, 1, 1, 5, 30, 0);
else
second = new DateTime(now.Year, now.Month+1, 1, 5, 30, 0);
}
else
{
second = new DateTime(now.Year, now.Month, now.Day+1, 5, 30, 0);
}
RadDateTimePicker1.SelectedDate = first;
RadDateTimePicker2.SelectedDate = second;
DateTime。现在
可以在调用之间进行更改,最好执行以下操作:
DateTime today = DateTime.Today;
RadDateTimePicker1.SelectedDate = today.Add(new TimeSpan(17, 30, 0));
RadDateTimePicker2.SelectedDate = today.Add(new TimeSpan(1, 5, 30, 0));
试试像这样的东西
DateTime today = DateTime.Now.Date + new TimeSpan( 0 , 17 , 30 , 0 ) ;
DateTime tomorrow = today.Date + new TimeSpan( 1 , 5 , 30 , 0 ) ;
RadDateTimePicker1.SelectedDate = today ;
RadDateTimePicker2.SelectedDate = tomorrow ;
公认的答案非常冗长(问题中的示例代码也是如此)
为什么不这样做:
RadDateTimePicker1.SelectedDate = DateTime.Today.AddHours(17.5);
RadDateTimePicker2.SelectedDate = DateTime.Today.AddHours(29.5);
或者,如果您想更清楚地了解第二行的时间成分,可以使用以下内容:
RadDateTimePicker2.SelectedDate = DateTime.Today.AddDays(1).AddHours(5.5);
好的,我真的很感激!为什么没有例子显示这一点,他们只是添加。AddDays(1)?哦,好的!有道理,我查了好几个,一个也没用过。非常感谢。如果今天是1月31日,会发生什么?@UlugbekUmirov我对这个答案不是100%肯定。@UlugbekUmirov我可以问一下为什么不知道会发生什么。这很有意义,因为他们永远不需要精确的时间。非常感谢。这个代码和OP的代码做同样的事情吗?他创建了一个新的日期时间,将小时和分钟指定为17:30,但您将从现在开始添加17小时和30分钟。@Selman22我将添加到今天的
,而不是现在的
Today
已将时间归零-它相当于DateTime。现在.Date
。不能说我以前见过这种情况,我假设头数为0和1,天数是递增的吗?你可以试着在上阅读文档,我感谢你的帮助和输入,就像大多数代码一样,有很多不同的方法来做事情。我会向上投票,我感谢你给我展示一种简单的做事方式。