2013-07-10 61 views
0

我知道这样的问题被重复,但我没有得到任何result.I必须螺旋日期更改为公历日期,这是我的方法如何返回零日期时间

public static DateTime ShamsiToMiladi(string shmasi) 
{ 
    DateTime? Dt = null; 
    if (shmasi != "") 
    { 
     System.Globalization.PersianCalendar persian = new System.Globalization.PersianCalendar(); 
     char[] spChar = { '/' }; 
     string[] splited_shamsi = shmasi.Split(spChar, 3); 
     Dt = persian.ToDateTime(int.Parse(splited_shamsi[0]), int.Parse(splited_shamsi[1]), int.Parse(splited_shamsi[2]), 12, 12, 12, 12); 

    } 
    return Dt; 
} 

sahmsi是来自于一个参数文本框。我该如何返回Dt? 感谢您的帮助

回答

0

由于DateTime实际上是一个建立在长整数上的结构,因此无法赋予其空值。

但是,如果你需要这样的选择,宣称它作为一个为空的日期时间正是如此:

DateTime? ThisDate = null; 

如果你返回null的日期时间,您的呼叫方使用作为前检查空值表达式中的常规DateTime。

作为一般规则,新声明的常规DateTime的值为DateTime.MinValue('01/01/0000'),您可以对此进行测试。

+0

谢谢。我测试这个:DateTime Dt = DateTime.MinValue;但我收到这个错误SqlDateTime溢出。必须介于1/1/1753 12:00:00 AM和12/31/9999 11:59:59 PM之间。 – Noora

+0

SQL DateTime具有不同的范围。当你把它写回数据库时,你必须做如下事情:'MyTable [currentRow] [dateColumn] =(dt == DateTime.MinValue)? DbNull.Value:dt;' – Curt

+0

谢谢你,但这让我更加困惑。 – Noora