c# - 我正在尝试使用变量在 C# 中初始化 DateTime
问题描述
我在这里很新,所以我的问题可能很愚蠢,但我找不到与我的问题类似的东西。我正在 VS 2017 中编写一个 winforms 应用程序。我正在尝试使用可变的年份和月份初始化 DateTime。我的代码如下所示:
int month = comboBox1.SelectedIndex;
month++;
label1.Text = month.ToString();
DateTime dt = new DateTime(year,month,1);
每次用户单击组合框并选择不同的月份时,“月份”都会发生变化。年份相同,但它不会崩溃,我创建了一个标签,显示“月份”包含的内容(始终显示 1-12,具体取决于单击的月份)。
我收到一个超出范围的异常,说它不是有效的 DateTime。(比如第 13 个月或其他东西,但不是这样,因为我通过标签检查了它)
我可以观察到一个奇怪的行为:当“月”变量高于 6 时(我刚刚添加了另一个“月++”),它不会崩溃。虽然当我点击 12 月时它确实会崩溃,因为那时是 13 月。但这应该是标准的。
解决方案
使用显示和值成员
像这样创建自定义类:
class Int_String
{
//important to have get set part
public _int { get; set; }
public _string { get; set; }
}
现在,当创建表单时,像这样填充您的组合框:
List<Int_String> myList = new List<Int_String>();
myList.Add(new Int_String { _int = 1, _string = "January" };
myList.Add(new Int_String { _int = 2, _string = "February" };
myList.Add(new Int_String { _int = 3, _string = "March" };
myList.Add(new Int_String { _int = 4, _string = "April" };
myList.Add(new Int_String { _int = 5, _string = "May" };
myList.Add(new Int_String { _int = 6, _string = "Juny" };
myList.Add(new Int_String { _int = 7, _string = "July" };
myList.Add(new Int_String { _int = 8, _string = "August" };
myList.Add(new Int_String { _int = 9, _string = "September" };
myList.Add(new Int_String { _int = 10, _string = "October" };
myList.Add(new Int_String { _int = 11, _string = "November" };
myList.Add(new Int_String { _int = 12, _string = "December" };
myComboBox.DisplayMember = "_string";
myComboBox.ValueMember = "_int";
myComboBox.DataSource = myList;
现在,当您要创建DateTime
变量时,您可以像这样创建它:
DateTime date = new DateTime(year, Convert.ToInt32(myComboBox.SelectedValue), 1);
推荐阅读
- elasticsearch - CloudFormation:不可导入资源的漂移修复?
- python - 熊猫列数据类型:对象到int - 错误:float'对象没有属性'replace'
- time - 在 SAS 中创建时间变量的问题
- google-apps-script - 如何以编程方式(通过 AppsScript)通过 URL 在 Google 电子表格中打开特定工作表
- twig - for 循环内的切换标记正在生成错误
- firebase - “同时”使用 Firebase Storage 和 Cloud Firestore
- regex - 检查 PostgreSQL 中 where 子句 PostgreSQL 中的子字符串,替换 DB2 中的 XMLQuery 和 fnmatches
- c - 使用 realloc 和 calloc 增加函数内二维数组的大小
- github - 在第二台计算机上从 GitHub 拉取更改
- angular - 使用 selectionMode 'multiple' 在 p 表中进行编程行选择