C#日期时间相关工具类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace util
{
    class DateTimeUtils
    {
        /// <summary>
        /// 根据当前年份和月份查询当月的所有日期集合
        /// </summary>
        /// <param name="year"></param>
        /// <param name="month"></param>
        /// <returns></returns>
        public List<DateTime> getAllDates(int year, int month)
        {
            var ret = new List<DateTime>();
            for (int i = 1; i <= DateTime.DaysInMonth(year, month); i++)
            {
                ret.Add(new DateTime(year, month, i));
            }
            return ret;
        }

        /// <summary>
        /// 判断一个日期是否在一个日期范围时间内
        /// </summary>
        /// <param name="dt">要判断的日期</param>
        /// <param name="dt1">开始日期</param>
        /// <param name="dt2">结束日期</param>
        /// <returns></returns>
        public static bool IsInDate(DateTime dt, DateTime dt1, DateTime dt2)
        {
            return dt.CompareTo(dt1) >= 0 && dt.CompareTo(dt2) <= 0;
        }

        /// <summary>
        /// 根据格式获取相关的时间差:天、时、分、秒
        /// </summary>
        /// <param name="dt1">旧的时间</param>
        /// <param name="dt2">新的时间</param>
        /// <returns></returns>
        public static string[] getDayHourBranchSecond(DateTime dt1, DateTime dt2)
        {
            string[] arr = new string[4];
            //计算两个日期的时间间隔
            TimeSpan ts1 = new TimeSpan(dt1.Ticks);
            TimeSpan ts2 = new TimeSpan(dt2.Ticks);
            TimeSpan ts = ts1.Subtract(ts2).Duration();
            /*var dateDiff = ts.Days.ToString() + " 天" + ts.Hours.ToString() + " 小时" + ts.Minutes.ToString() + " 分钟" + ts.Seconds.ToString() + " 秒";*/
            // "177 天15 小时16 分钟21 秒"
            arr[0] = ts.Days.ToString();
            arr[1] = ts.Hours.ToString();
            arr[2] = ts.Minutes.ToString();
            arr[3] = ts.Seconds.ToString();
            return arr;
        }

        /// <summary>
        /// 比较两个日期大小
        /// 日期一是否大于日期二
        /// </summary>
        /// <param name="dateStr1">日期1</param>
        /// <param name="dateStr2">日期2</param>
        public static bool CompanyDate(DateTime dateStr1, DateTime dateStr2)
        {
            // 将日期字符串转换为日期对象
            int compNum = DateTime.Compare(dateStr1, dateStr2);

            // dateStr1> dateStr2
            if (compNum > 0)
            {
                return true;
            }
            // dateStr1= dateStr2
            if (compNum == 0)
            {
                return true;
            }
            // dateStr1< dateStr2
            if (compNum < 0)
            {
                return false;
            }
            return false;
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哎呦喂O_o嗨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值