• C# 秒数转日期_由秒数得到日期几天几小时_当前日期时间,转换为秒


    ///<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);
  • 相关阅读:
    昇腾AI处理器软件栈--任务调度器(TS)
    [转]shopnc 版权问题
    关于对接诸葛IO 解决的问题
    Mysql中like查询中存在反斜杠的解决方法
    关于TP,PHP和shopnc 的cookie
    TypeError: document.getElementById(…).submit is not a function解决
    关于图片上传的 相对路径出现问题
    Android 通讯录
    关于kindedit和 Uedit后者兼容前者
    Handler机制
  • 原文地址:https://www.cnblogs.com/imeiba/p/5697984.html
Copyright © 2020-2023  润新知