2010-05-01 77 views
0

我需要將日期轉換爲shamsi日期錯誤 - 將日期轉換爲顯示

我創建了一個將DateTime轉換爲shamsi日期的方法。

當我路過一個日期的方法我得到這個錯誤

的最佳重載方法匹配「BentaAccounting.Classes.GenralClasses.FarsiDate.MiladiToShamsi(System.DateTime的)」有一些無效參數

這是我使用

方法

public static string MiladiToShamsi(DateTime Date) 
     { 
      string Result; 
      PersianCalendar FarsiDate = new PersianCalendar(); 
      Result = FarsiDate.GetYear(Date).ToString() + "/" + 
       (FarsiDate.GetMonth(Date) < 10 ? "0" + FarsiDate.GetMonth(Date).ToString() : FarsiDate.GetMonth(Date).ToString()) + "/" + 
       (FarsiDate.GetDayOfMonth(Date) < 10 ? "0" + FarsiDate.GetDayOfMonth(Date).ToString() : FarsiDate.GetDayOfMonth(Date).ToString()); 
      return Result; 
     } 

代碼並查看

<%: Html.Encode(GenralClasses.FarsiDate.MiladiToShamsi(item.OrderDate))%> 
+0

嗨阿里,我試過你的例子,它毫無例外地工作。可能是我缺少東西 – 2010-05-01 09:18:43

回答

0

嘗試這個

public static string MiladiToShamsi(DateTime Date) 
     { 
      string Result; 
      string Year; 
      string Month; 
      string Day; 
      # string Result, Year, Month, Day I don't know this works or not in asp.net 
      PersianCalendar FarsiDate = new PersianCalendar(); 
      Year = FarsiDate.GetYear(Date).ToString(); 
      Month = (FarsiDate.GetMonth(Date) < 10 ? "0" + FarsiDate.GetMonth(Date).ToString() : FarsiDate.GetMonth(Date).ToString()); 
      Day = (FarsiDate.GetDayOfMonth(Date) < 10 ? "0" + FarsiDate.GetDayOfMonth(Date).ToString() : FarsiDate.GetDayOfMonth(Date).ToString()); 
      Result = Year + "/" + Month + "/" + Day ; 
      return Result; 
     } 
0

你得到這個異常的唯一原因 - item.OrderDate的類型不是日期時間。馬比它是 字符串或其他東西。

+0

不,我確定orderDate的數據類型是DateTime – Ali 2010-05-01 09:47:34

+0

這很奇怪。我以下面的方式嘗試了你的代碼,它工作得很好<%:Html.Encode(GenralClasses.FarsiDate.MiladiToShamsi(DateTime.Now))%> 它適合你嗎? – 2010-05-01 11:33:46

+0

不,它不適用於我。OrderDate的數據類型之前是nvarchar,我將它更改爲datetime。 – Ali 2010-05-01 13:26:39