好的,我不太清楚如何解决这个问题。这是场景。
1)在网络表单上我们有3个下拉菜单:月,日和年
2)年份始终是可选的(不是必需的)
3)如果客户输入月份和日期,而不是年份,我们希望将年份默认为1900
4)如果客户输入全部3,我需要拼凑一个DateTime来表示。无论哪种方式,如果用户没有选择年份,这一年将有一些东西......无论是有效年份还是1900年。
所以在我的代码隐藏中,我不太确定如何设置所有这些。最终我需要形成该日期,以便在将日期发送到DL更新功能后,我可以更新SQL 2008 Date数据类型。
因此,我在代码隐藏方法中创建了一个DataTime变量,用于获取用户在每个下拉列表中选择的值。但是我想在DateTime.Year上没有setter,所以第四。所以我不能只做DateTime.year =“1900”或类似的东西。
答案 0 :(得分:9)
你是对的,没有setter,但这些都可以在constructor中设置。您可以执行类似
的操作DateTime date = new DateTime(year.HasValue ? year.Value : 1900, month, day)
哪一年是Int32?
答案 1 :(得分:2)
创建新的日期时间:
DateTime myDate = new DateTime(year, month, day)
我认为那是关于所有的事情。
答案 2 :(得分:0)
有一个DateTime构造函数,它将一年,一月和一天作为输入参数。您可以使用它并输入下拉列表中的值(如果未选择年份,则默认为1900)。
答案 3 :(得分:0)
事实上,在构建它之后也可以改变DateTime
的年份,虽然它有点费力:
int yearsSinceNineteenHundred = date.Year - 1900;
date = date.AddYears(-yearsSinceNineteenHundred);
答案 4 :(得分:-1)
以字符串形式连接,然后转换为日期时间。