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 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
