2010-06-04 103 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()); 

}