///<summary> ///由秒数得到日期几天几小时。。。 ///</summary ///<param name="t">秒数</param> ///<param name="type">0:转换后带秒,1:转换后不带秒</param> ///<returns>几天几小时几分几秒</returns> public static string parseTimeSeconds(int t, int type) { string r = ""; int day, hour, minute, second; if (t >= 86400) //天, { day = Convert.ToInt16(t / 86400); hour = Convert.ToInt16((t % 86400) / 3600); minute = Convert.ToInt16((t % 86400 % 3600) / 60); second = Convert.ToInt16(t % 86400 % 3600 % 60); if (type == 0) r = day + ("day") + hour + ("hour") + minute + ("minute") + second + ("second"); else r = day + ("day") + hour + ("hour") + minute + ("minute"); } else if (t >= 3600)//时, { hour = Convert.ToInt16(t / 3600); minute = Convert.ToInt16((t % 3600) / 60); second = Convert.ToInt16(t % 3600 % 60); if (type == 0) r = hour + ("hour") + minute + ("minute") + second + ("second"); else r = hour + ("hour") + minute + ("minute"); } else if (t >= 60)//分 { minute = Convert.ToInt16(t / 60); second = Convert.ToInt16(t % 60); r = minute + ("minute") + second + ("second"); } else { second = Convert.ToInt16(t); r = second + ("second"); } return r; } /// <summary> /// 当前日期时间,转换为秒 /// </summary> /// <returns>秒数</returns> public static string xDateSeconds() { long xdateseconds = 0; DateTime xdatenow = DateTime.UtcNow; //当前UTC时间 long xminute = 60; //一分种60秒 long xhour = 3600; long xday = 86400; long byear = 1970;//从1970-1-1 0:00:00开始到现在所过的秒 long[] xmonth = { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 }; long[] xyear = { 365, 366 }; long num = 0; xdateseconds += xdatenow.Second; //算秒 xdateseconds += xdatenow.Minute * xminute; //算分 xdateseconds += xdatenow.Hour * xhour; //算时 xdateseconds += (xdatenow.Day - 1) * xday; //算天 //算月(月换成天算) if (DateTime.IsLeapYear(xdatenow.Year)) { xdateseconds += (xmonth[xdatenow.Month - 1] + 1) * xday; } else { xdateseconds += (xmonth[xdatenow.Month - 1]) * xday; } //算年(年换成天算) long lyear = xdatenow.Year - byear; for (int i = 0; i < lyear; i++) { if (DateTime.IsLeapYear((int)byear + i)) { num++; } } xdateseconds += ((lyear - num) * xyear[0] + num * xyear[1]) * xday; return xdateseconds.ToString(); } /// <summary> /// 秒数转日期 /// </summary> /// <param name="Value">秒数</param> /// <returns>日期</returns> public static DateTime GetGMTDateTime(int Value) { //秒数转时间日期 //GMT时间从2000年1月1日开始,先把它作为赋为初值 long Year = 2000, Month = 1, Day = 1; long Hour = 0, Min = 0, Sec = 0; //临时变量 long iYear = 0, iDay = 0; long 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); DateTime t1 = t.AddDays(iDay - RInt); return t1; } 把总秒数转换成DataTime格式,注意时区,默认是格林威治时间GMT DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0, 0).ToLocalTime().AddSeconds(info.lTime); uploadtime.Text = string.Format("{0:F}", dt);
时间: 2024-11-13 06:16:58