怎么把41463.4877546296转换成DateTime
我在excel里把这个单元格变成日期格式.自动变成:2013-7-8 11:42:22
我读excel的时候C#读到的值是41463.4877546296
怎么把它识别成DateTime?
用DateTime.Parse
Convert.ToDateTime
都不行.怎么办
[解决办法]
本帖最后由 caozhy 于 2013-09-18 17:39:19 编辑
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var dt = new DateTime(1899, 12, 30);
double span = 41463.4877546296;
dt = dt.AddDays((int)span);
span = (span - (int)span) * 24;
dt = dt.AddHours((int)span);
span = (span - (int)span) * 60;
dt = dt.AddMinutes((int)span);
span = (span - (int)span) * 60;
dt = dt.AddSeconds((int)span);
if (span > 0.5) //如果毫秒数大于500毫秒,就四舍五入1秒。
dt = dt.AddSeconds(1);
Console.WriteLine(dt);
}
}
}
2013-7-8 11:42:22
Press any key to continue . . .