src/DotNetCommon.Core/Extensions/DateTimeExtensions.cs

(开头部分) 7KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

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

namespace DotNetCommon.Extensions
{
    /// <summary>
    /// <seealso cref="DateTime"/>的扩展类
    /// </summary>
    public static class DateTimeExtensions
    {
        /// <summary>
        /// 表示为 DateTime 的纪元
        /// </summary>
        internal static readonly DateTime Epoch;

        static DateTimeExtensions() => Epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);

        /// <summary>
        /// 将给定的 <see cref="DateTime"/> 转换为Epoch的毫秒数。
        /// </summary>
        /// <param name="dateTime">给定的 <see cref="DateTime"/></param>
        /// <returns>自纪元以来的毫秒数</returns>
        public static long ToEpochMilliseconds(this DateTime dateTime) =>
            (long)dateTime.ToUniversalTime().Subtract(Epoch).TotalMilliseconds;

        /// <summary>
        ///将给定的 <see cref="DateTime"/> 转换为距纪元的秒。
        /// </summary>
        /// <param name="dateTime">给定的 <see cref="DateTime"/></param>
        /// <returns>Unix时间戳</returns>
        public static long ToEpochSeconds(this DateTime dateTime) =>
            dateTime.ToEpochMilliseconds() / 1000;

        /// <summary>
        /// 检查给定的日期是否在两个提供的日期之间
        /// <param name="date">给定的 <see cref="DateTime"/></param>
        /// <param name="startDate">开始日期 <see cref="DateTime"/></param>
        /// <param name="endDate">结束日期 <see cref="DateTime"/></param>
        /// <param name="compareTime">是否比较时间 <see cref="Boolean"/></param>
        /// </summary>
        public static bool IsBetween(this DateTime date, DateTime startDate, DateTime endDate, bool compareTime = false) =>
            compareTime ? date >= startDate && date <= endDate : date.Date >= startDate.Date && date.Date <= endDate.Date;

        /// <summary>
        /// 返回给定日期是否为该月的最后一天
        /// </summary>
        public static bool IsLastDayOfTheMonth(this DateTime dateTime) =>
            dateTime == new DateTime(dateTime.Year, dateTime.Month, 1).AddMonths(1).AddDays(-1);

        /// <summary>
        /// 返回给定日期是否位于周末(周六或周日)
        /// </summary>
        public static bool IsWeekend(this DateTime value) =>
            value.DayOfWeek == DayOfWeek.Sunday || value.DayOfWeek == DayOfWeek.Saturday;

        /// <summary>
        /// 确定给定年份是否为闰年。
        /// </summary>
        public static bool IsLeapYear(this DateTime value) =>
后面还有 120 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。