C# 将整数组合成日期时间

C# 将整数组合成日期时间,c#,datetime,C#,Datetime,我有3个整数值,我试图将它们组合起来创建一个datetime变量。我正试图这样做,因为我需要用户通过datetimepicker指定年份,然后在数组中,我需要日期从该年第一个月的第一天开始 现在我有, int b = 1; int m = 1; int y = dateTimePicker1.Value.Year; DateTime newdate = new DateTime(b, m, y); 我尝试了一系列不同的方法将整数组合在一起,形成2017年1月1日。我知道当出现错误时,整数保存

我有3个整数值,我试图将它们组合起来创建一个datetime变量。我正试图这样做,因为我需要用户通过datetimepicker指定年份,然后在数组中,我需要日期从该年第一个月的第一天开始

现在我有,

int b = 1;
int m = 1;
int y = dateTimePicker1.Value.Year;

DateTime newdate = new DateTime(b, m, y);
我尝试了一系列不同的方法将整数组合在一起,形成2017年1月1日。我知道当出现错误时,整数保存的是正确的值,但是newdate值是01/01/0001 12:00:00:AM

我不知道为什么整数y从2017变为0001

因此,错误消息是,年、月和日参数描述了
不可表示的日期时间。

首先需要更改参数顺序

 DateTime newdate = new DateTime(year, month, day);

其次,您可以使用DateTime.Parse或DateTime.TryParse从字符串中获取日期对象

您的参数顺序错误

订单为

var newDate = new DateTime(y, m, b);
您试图创建的日期2017/1/1无效


考虑使用
DateTime newDate
作为
var
对于名称较短的变量类型是不好的做法,因为在声明variable@ZachRoss-克莱恩-你有这方面的参考资料吗?假设ReSharper(例如)在建议我使用
var
而不是我觉得你的陈述难以相信的类型时没有做出这种区分。@ZachRoss Clyne这纯粹是偏好,并没有给解决方案带来任何改进。只是让它更容易阅读而已,因为它在字符上没有太大的差异,所以让它更容易阅读是愚蠢的read@ZachRoss-克莱恩:答案纯粹是某人的个人喜好,决不能决定什么是好的或坏的做法。你能改进
DateTime.Parse
的格式吗
DateTime.TryParse
使其更易于阅读和识别为代码。除此之外+1