日期:2014-05-17  浏览次数:20728 次

怎么把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 . . .