苏飞论坛广告位

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

分布式系统框架(V1.3) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程 - 订阅更新

HttpHelper万能框架(V2.3) HttpHelper官方出品,无敌框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V1.9) 最牛的爬虫类,没有爬不到只有想不到 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 9866|回复: 8
打印 上一主题 下一主题

[时间操作] C#TimeHelper时间格式化帮助类

[复制链接]
  • TA的每日心情
    开心
    2 小时前
  • 签到天数: 617 天

    [LV.9]以坛为家II

    跳转到指定楼层
    楼主
    发表于 2013-4-10 21:39:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    C#TimeHelper时间帮助类
    导读部分
    -------------------------------------------------------------------------------------------------------------
    C#基类库苏飞版--系列教程导航
    http://www.sufeinet.com/thread-655-1-1.html

    主要功能如下
    1. 1.将时间格式化成 年月日 的形式,如果时间为null,返回当前系统时间
    2. 2.将时间格式化成 时分秒 的形式,如果时间为null,返回当前系统时间
    3. 3.把秒转换成分钟
    4. 4.返回某年某月最后一天
    5. 5.返回时间差
    6. 6.获得两个日期的间隔
    7. 7.格式化日期时间
    8. 8.得到随机日期
    复制代码
    最新的TimeHelper操作类
    TimeHelper.rar (1.8 KB, 下载次数: 866)
    看下面代码吧
    [C#] 纯文本查看 复制代码
    /// <summary>
    /// 类说明:时间类SecondToMinute(int Second) 把秒转换成分钟
    /// 编 码 人:苏飞
    /// 联系方式:361983679  
    /// 更新网站:[url=http://www.sufeinet.com/thread-655-1-1.html]http://www.sufeinet.com/thread-655-1-1.html[/url]
    /// </summary>
    using System;
    
    namespace DotNet.Utilities
    {
        /// <summary>
        /// 时间类
        /// 1、SecondToMinute(int Second) 把秒转换成分钟
        /// </summary>
        public class TimeHelper
        {
            /// <summary>
            /// 将时间格式化成 年月日 的形式,如果时间为null,返回当前系统时间
            /// </summary>
            /// <param name="dt">年月日分隔符</param>
            /// <param name="Separator"></param>
            /// <returns></returns>
            public string GetFormatDate(DateTime dt, char Separator)
            {
                if (dt != null && !dt.Equals(DBNull.Value))
                {
                    string tem = string.Format("yyyy{0}MM{1}dd", Separator, Separator);
                    return dt.ToString(tem);
                }
                else
                {
                    return GetFormatDate(DateTime.Now, Separator);
                }
            }
            /// <summary>
            /// 将时间格式化成 时分秒 的形式,如果时间为null,返回当前系统时间
            /// </summary>
            /// <param name="dt"></param>
            /// <param name="Separator"></param>
            /// <returns></returns>
            public string GetFormatTime(DateTime dt, char Separator) {
                if (dt != null && !dt.Equals(DBNull.Value))
                {
                    string tem = string.Format("hh{0}mm{1}ss", Separator, Separator);
                    return dt.ToString(tem);
                }
                else
                {
                    return GetFormatDate(DateTime.Now, Separator);
                }
            }
            /// <summary>
            /// 把秒转换成分钟
            /// </summary>
            /// <returns></returns>
            public static int SecondToMinute(int Second)
            {
                decimal mm = (decimal)((decimal)Second / (decimal)60);
                return Convert.ToInt32(Math.Ceiling(mm));
            }
    
            #region 返回某年某月最后一天
            /// <summary>
            /// 返回某年某月最后一天
            /// </summary>
            /// <param name="year">年份</param>
            /// <param name="month">月份</param>
            /// <returns>日</returns>
            public static int GetMonthLastDate(int year, int month)
            {
                DateTime lastDay = new DateTime(year, month, new System.Globalization.GregorianCalendar().GetDaysInMonth(year, month));
                int Day = lastDay.Day;
                return Day;
            }
            #endregion
    
            #region 返回时间差
            public static string DateDiff(DateTime DateTime1, DateTime DateTime2)
            {
                string dateDiff = null;
                try
                {
                    //TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
                    //TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
                    //TimeSpan ts = ts1.Subtract(ts2).Duration();
                    TimeSpan ts = DateTime2 - DateTime1;
                    if (ts.Days >= 1)
                    {
                        dateDiff = DateTime1.Month.ToString() + "月" + DateTime1.Day.ToString() + "日";
                    }
                    else
                    {
                        if (ts.Hours > 1)
                        {
                            dateDiff = ts.Hours.ToString() + "小时前";
                        }
                        else
                        {
                            dateDiff = ts.Minutes.ToString() + "分钟前";
                        }
                    }
                }
                catch
                { }
                return dateDiff;
            }
            #endregion
    
            #region 获得两个日期的间隔
            /// <summary>
            /// 获得两个日期的间隔
            /// </summary>
            /// <param name="DateTime1">日期一。</param>
            /// <param name="DateTime2">日期二。</param>
            /// <returns>日期间隔TimeSpan。</returns>
            public static TimeSpan DateDiff2(DateTime DateTime1, DateTime DateTime2)
            {
                TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
                TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
                TimeSpan ts = ts1.Subtract(ts2).Duration();
                return ts;
            }
            #endregion
    
            #region 格式化日期时间
            /// <summary>
            /// 格式化日期时间
            /// </summary>
            /// <param name="dateTime1">日期时间</param>
            /// <param name="dateMode">显示模式</param>
            /// <returns>0-9种模式的日期</returns>
            public static string FormatDate(DateTime dateTime1, string dateMode)
            {
                switch (dateMode)
                {
                    case "0":
                        return dateTime1.ToString("yyyy-MM-dd");
                    case "1":
                        return dateTime1.ToString("yyyy-MM-dd HH:mm:ss");
                    case "2":
                        return dateTime1.ToString("yyyy/MM/dd");
                    case "3":
                        return dateTime1.ToString("yyyy年MM月dd日");
                    case "4":
                        return dateTime1.ToString("MM-dd");
                    case "5":
                        return dateTime1.ToString("MM/dd");
                    case "6":
                        return dateTime1.ToString("MM月dd日");
                    case "7":
                        return dateTime1.ToString("yyyy-MM");
                    case "8":
                        return dateTime1.ToString("yyyy/MM");
                    case "9":
                        return dateTime1.ToString("yyyy年MM月");
                    default:
                        return dateTime1.ToString();
                }
            }
            #endregion
    
            #region 得到随机日期
            /// <summary>
            /// 得到随机日期
            /// </summary>
            /// <param name="time1">起始日期</param>
            /// <param name="time2">结束日期</param>
            /// <returns>间隔日期之间的 随机日期</returns>
            public static DateTime GetRandomTime(DateTime time1, DateTime time2)
            {
                Random random = new Random();
                DateTime minTime = new DateTime();
                DateTime maxTime = new DateTime();
    
                System.TimeSpan ts = new System.TimeSpan(time1.Ticks - time2.Ticks);
    
                // 获取两个时间相隔的秒数
                double dTotalSecontds = ts.TotalSeconds;
                int iTotalSecontds = 0;
    
                if (dTotalSecontds > System.Int32.MaxValue)
                {
                    iTotalSecontds = System.Int32.MaxValue;
                }
                else if (dTotalSecontds < System.Int32.MinValue)
                {
                    iTotalSecontds = System.Int32.MinValue;
                }
                else
                {
                    iTotalSecontds = (int)dTotalSecontds;
                }
    
    
                if (iTotalSecontds > 0)
                {
                    minTime = time2;
                    maxTime = time1;
                }
                else if (iTotalSecontds < 0)
                {
                    minTime = time1;
                    maxTime = time2;
                }
                else
                {
                    return time1;
                }
    
                int maxValue = iTotalSecontds;
    
                if (iTotalSecontds <= System.Int32.MinValue)
                    maxValue = System.Int32.MinValue + 1;
    
                int i = random.Next(System.Math.Abs(maxValue));
    
                return minTime.AddSeconds(i);
            }
            #endregion
        }
    }
    

  • TA的每日心情
    开心
    2018-6-12 12:34
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    沙发
    发表于 2014-12-29 14:21:40 | 只看该作者

    该用户从未签到

    板凳
    发表于 2015-5-9 16:37:14 | 只看该作者
    回复

    使用道具 举报

    该用户从未签到

    地板
    发表于 2015-7-14 20:26:05 | 只看该作者
  • TA的每日心情
    无聊
    2017-9-14 01:34
  • 签到天数: 2 天

    [LV.1]初来乍到

    5
    发表于 2015-7-14 21:07:26 | 只看该作者

    该用户从未签到

    6
    发表于 2015-9-3 18:42:43 | 只看该作者
    嗯,不得不说C#的资源多又多啊,非常适合快速开发,是提升收入必备的利器。

    该用户从未签到

    7
    发表于 2015-10-8 11:40:55 | 只看该作者
  • TA的每日心情

    2017-1-15 10:23
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    8
    发表于 2015-10-28 23:54:15 | 只看该作者
  • TA的每日心情

    2017-1-15 10:23
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    9
    发表于 2015-10-28 23:55:22 | 只看该作者
    您需要登录后才可以回帖 登录 | 马上注册

    本版积分规则

    QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备17001017号-1 )

    GMT+8, 2018-11-14 16:28

    © 2017-2018

    快速回复 返回顶部 返回列表