2010-06-04 100 views
0

感謝您查看我的問題。以XML格式轉換爲文本值的Excel時間格式數據

這是basicaly練成我的

**Shift Start Time Break 1 Time Lunch Time Break 2 Time Shift End Time** 
    7:00:00  8:30:00   12:00:00   14:30:00   16:30:00 

工作時,我convertiong這個Excel到XML從我的.Net代碼XCL時間值越來越轉換爲文本,這樣數據是越來越currupt。

Shift_x0020_Start_x0020_Time=''0.291666666666667'' 
Break_x0020_1_x0020_Time=''0.354166666666667'' 
Lunch_x0020_Time=''0.5'' 
Break_x0020_2_x0020_Time=''0.604166666666667'' 
Shift_x0020_End_x0020_Time=''0.6875'' 

這就是XML生成的樣子。我不希望發生這種情況,我想保留用戶進入的實際時間值。請提出建議。

回答

0

日期在Excel中以數字形式存儲,一天中的時間以小數形式存儲。因此12中午正好是0.5(半天)。在編寫XML之前,您必須將.NET中的分數轉換爲小時:分鐘:秒。

n is the number given to you by Excel 

h  = n*24 
hours = floor(h) 
m  = (h-hours) * 60 
minutes = floor(m) 
seconds = floor((m-minutes) * 60) 
0

對於任何來到這裏尋找.net解決方案的人。這就是你如何在.net中完成的。

你可以使用:

public void FractionTOTime() 
{ 
    TimeSpan time = null; 

    time = TimeSpan.FromDays(Convert.ToDouble("2.0833333333333332E-2")); 

    Console.WriteLine(time.ToString()); 

}