手动将部分日期放在一起

时间:2009-11-06 14:05:10

标签: c#

好的,我不太清楚如何解决这个问题。这是场景。

1)在网络表单上我们有3个下拉菜单:月,日和年

2)年份始终是可选的(不是必需的)

3)如果客户输入月份和日期,而不是年份,我们希望将年份默认为1900

4)如果客户输入全部3,我需要拼凑一个DateTime来表示。无论哪种方式,如果用户没有选择年份,这一年将有一些东西......无论是有效年份还是1900年。

所以在我的代码隐藏中,我不太确定如何设置所有这些。最终我需要形成该日期,以便在将日期发送到DL更新功能后,我可以更新SQL 2008 Date数据类型。

因此,我在代码隐藏方法中创建了一个DataTime变量,用于获取用户在每个下拉列表中选择的值。但是我想在DateTime.Year上没有setter,所以第四。所以我不能只做DateTime.year =“1900”或类似的东西。

5 个答案:

答案 0 :(得分:9)

你是对的,没有setter,但这些都可以在constructor中设置。您可以执行类似

的操作
DateTime date = new DateTime(year.HasValue ? year.Value : 1900, month, day) 

哪一年是Int32?

答案 1 :(得分:2)

  1. 从网页上读取所有三条信息(年,月,日)到INT变量
  2. 如果为空,则将“Year”替换为1900
  3. 创建新的日期时间:

    DateTime myDate = new DateTime(year, month, day)
    
  4. 我认为那是关于所有的事情。

答案 2 :(得分:0)

有一个DateTime构造函数,它将一年,一月和一天作为输入参数。您可以使用它并输入下拉列表中的值(如果未选择年份,则默认为1900)。

答案 3 :(得分:0)

事实上,在构建它之后也可以改变DateTime的年份,虽然它有点费力:

int yearsSinceNineteenHundred = date.Year - 1900;
date = date.AddYears(-yearsSinceNineteenHundred);

答案 4 :(得分:-1)

以字符串形式连接,然后转换为日期时间。