C#日期时间显示的问题

图片说明
两个文件,一个程序,为啥一个能用一个不能?

Sec = Sec + iSec;
不要这么写
可以用t = t.AddSeconds(iSec)

参数超出范围,比如说秒超过59了,月超过12了,等等,调试下。

提示很清楚:小时、分和秒参数描述无法表示的DateTime.

也就是说你的Hour只能0-23,Min只能0-59,Sec只能0-59.超过这个范围时间就不对了。

double Value = StrTime + Strsec / 1000000;//显示时间

        //秒数转时间日期
        //GMT时间从2000年1月1日开始,先把它作为赋为初值
        double Year = 2000, Month = 1, Day = 1;

        double Hour = 12, Min = 0, Sec = 0;
        //临时变量
        double iYear = 0, iDay = 0;
        double iHour = 0, iMin = 0, iSec = 0;
        //计算文件创建的年份
        iYear = Value / (365 * 24 * 60 * 60);
        Year = Year + iYear;
        //计算文件除创建整年份以外还有多少天
        iDay = (Value % (365 * 24 * 60 * 60)) / (24 * 60 * 60);
        //把闰年的年份数计算出来
        int RInt = 0;
        for (int i = 2000; i < Year; i++)
        {
            if ((i % 4) == 0)
                RInt = RInt + 1;
        }
        //计算文件创建的时间(几时)
        iHour = ((Value % (365 * 24 * 60 * 60)) % (24 * 60 * 60)) / (60 * 60);
        Hour = Hour + iHour;
        //计算文件创建的时间(几分)
        iMin = (((Value % (365 * 24 * 60 * 60)) % (24 * 60 * 60)) % (60 * 60)) / 60;
        Min = Min + iMin;
        //计算文件创建的时间(几秒)
        iSec = (((Value % (365 * 24 * 60 * 60)) % (24 * 60 * 60)) % (60 * 60)) % 60;
        Sec = Sec + iSec;
        DateTime t = new DateTime((int)Year, (int)Month, (int)Day, (int)Hour, (int)Min, (int)Sec);