最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用.NET8構(gòu)建一個(gè)高效的時(shí)間日期幫助類(lèi)

 更新時(shí)間:2025年01月28日 10:23:08   作者:黃同學(xué)real  
在現(xiàn)代Web應(yīng)用程序中,處理日期和時(shí)間是一個(gè)常見(jiàn)的需求,本文將為大家介紹如何使用ASP.NET?Core和C#構(gòu)建一個(gè)高效的時(shí)間日期幫助類(lèi),有需要的可以參考下

在現(xiàn)代Web應(yīng)用程序中,處理日期和時(shí)間是一個(gè)常見(jiàn)的需求。無(wú)論是記錄日志、生成報(bào)告還是進(jìn)行數(shù)據(jù)分析,正確處理日期和時(shí)間對(duì)于確保數(shù)據(jù)的準(zhǔn)確性和一致性至關(guān)重要。本文將詳細(xì)介紹如何使用ASP.NET Core和C#構(gòu)建一個(gè)高效的時(shí)間日期幫助類(lèi),并展示其使用方法。

技術(shù)棧

.NET 8: 提供強(qiáng)大的API開(kāi)發(fā)框架。

C#: 用于編寫(xiě)高效的業(yè)務(wù)邏輯。

代碼實(shí)現(xiàn)

DateTimeHelper 類(lèi)

我們創(chuàng)建了一個(gè)名為DateTimeHelper的幫助類(lèi),它提供了多種日期時(shí)間相關(guān)的功能,包括格式化日期時(shí)間和調(diào)整查詢(xún)時(shí)間范圍。

1. 常量定義

首先,我們定義了一些常用的常量,用于表示不同的時(shí)間跨度,例如1天、7天、30天等。

namespace MES.Core.Helpers
{
    /// <summary>
    /// 日期時(shí)間幫助類(lèi),提供日期時(shí)間格式化及查詢(xún)范圍調(diào)整功能
    /// </summary>
    public class DateTimeHelper
    {
        /// <summary>
        /// 日期時(shí)間格式:yyyy-MM-dd HH:mm:ss
        /// </summary>
        public const string DateTimeFormat = @"yyyy-MM-dd HH:mm:ss";

        /// <summary>
        /// 1天的時(shí)間跨度
        /// </summary>
        public const int Day1 = 1;

        /// <summary>
        /// 7天的時(shí)間跨度
        /// </summary>
        public const int Day7 = 7;

        /// <summary>
        /// 15天的時(shí)間跨度
        /// </summary>
        public const int Day15 = 15;

        /// <summary>
        /// 30天的時(shí)間跨度
        /// </summary>
        public const int Day30 = 30;

        /// <summary>
        /// 60天的時(shí)間跨度
        /// </summary>
        public const int Day60 = 60;

        /// <summary>
        /// 90天的時(shí)間跨度
        /// </summary>
        public const int Day90 = 90;

2. 獲取當(dāng)前時(shí)間

GetThisDateTime方法用于獲取當(dāng)前時(shí)間并將其格式化為指定的格式。

        /// <summary>
        /// 獲取當(dāng)前時(shí)間并格式化為指定格式
        /// </summary>
        /// <returns>格式化后的當(dāng)前時(shí)間</returns>
        public static DateTime GetThisDateTime()
        {
            return Convert.ToDateTime(DateTime.Now.ToString(DateTimeFormat));
        }

3. 調(diào)整查詢(xún)時(shí)間范圍

AdjustQueryRange方法根據(jù)提供的開(kāi)始時(shí)間和結(jié)束時(shí)間調(diào)整查詢(xún)范圍,以確保查詢(xún)結(jié)果在合理的范圍內(nèi)。

        /// <summary>
        /// 根據(jù)提供的開(kāi)始時(shí)間和結(jié)束時(shí)間調(diào)整查詢(xún)范圍
        /// </summary>
        /// <param name="start_time">開(kāi)始時(shí)間</param>
        /// <param name="end_time">結(jié)束時(shí)間</param>
        /// <param name="timeHorizon">時(shí)間范圍,默認(rèn)30天</param>
        /// <returns>包含調(diào)整后的開(kāi)始和結(jié)束時(shí)間的元組</returns>
        public static Tuple<DateTime, DateTime> AdjustQueryRange(DateTime? start_time, DateTime? end_time, int timeHorizon = Day30)
        {
            // 默認(rèn)設(shè)置開(kāi)始時(shí)間為當(dāng)前時(shí)間減去指定時(shí)間范圍(默認(rèn)30天)
            DateTime startTime = DateTime.Now.AddDays(-(timeHorizon - 1));
            // 默認(rèn)設(shè)置結(jié)束時(shí)間為當(dāng)前時(shí)間加1天
            DateTime endTime = DateTime.Now.AddDays(1);

            // 如果僅提供了開(kāi)始時(shí)間
            if (start_time != null && end_time == null)
            {
                startTime = (DateTime)start_time;
                // 確保結(jié)束時(shí)間在開(kāi)始時(shí)間之后且不超過(guò)指定時(shí)間范圍
                if (startTime.AddDays(timeHorizon) < endTime) endTime = startTime.AddDays(timeHorizon);
            }

            // 如果僅提供了結(jié)束時(shí)間
            if (start_time == null && end_time != null)
            {
                endTime = (DateTime)end_time;
                // 確保開(kāi)始時(shí)間在結(jié)束時(shí)間之前且不超過(guò)指定時(shí)間范圍
                if (endTime.AddDays(-timeHorizon) < startTime) startTime = endTime.AddDays(-timeHorizon);
            }

            // 如果提供了開(kāi)始和結(jié)束時(shí)間
            if (start_time != null && end_time != null)
            {
                startTime = (DateTime)start_time;
                endTime = (DateTime)end_time;
                // 確保結(jié)束時(shí)間在開(kāi)始時(shí)間之后且不超過(guò)指定時(shí)間范圍
                if (startTime.AddDays(timeHorizon) < endTime) endTime = startTime.AddDays(timeHorizon);
            }

            // 返回調(diào)整后的開(kāi)始和結(jié)束時(shí)間
            return Tuple.Create(startTime, endTime);
        }
    }
}

調(diào)用示例

以下是如何調(diào)用AdjustQueryRange方法的示例:

// 定義開(kāi)始時(shí)間和結(jié)束時(shí)間
DateTime? startTime = new DateTime(2023, 10, 1);
DateTime? endTime = null;

// 調(diào)用方法調(diào)整時(shí)間范圍
var (adjustStartTime, adjustEndTime) = DateTimeHelper.AdjustQueryRange(startTime, endTime, DateTimeHelper.Day30);

Console.WriteLine($"Adjusted Start Time: {adjustStartTime}");
Console.WriteLine($"Adjusted End Time: {adjustEndTime}");

總結(jié)

通過(guò)上述步驟,我們實(shí)現(xiàn)了一個(gè)高效的時(shí)間日期幫助類(lèi),能夠方便地格式化日期時(shí)間和調(diào)整查詢(xún)時(shí)間范圍。該類(lèi)不僅提高了代碼的可讀性和維護(hù)性,還確保了日期時(shí)間處理的一致性和準(zhǔn)確性。

以上就是使用.NET8構(gòu)建一個(gè)高效的時(shí)間日期幫助類(lèi)的詳細(xì)內(nèi)容,更多關(guān)于.NET8時(shí)間日期幫助類(lèi)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

商城县| 福清市| 齐河县| 古田县| 邹城市| 娄底市| 壤塘县| 佛冈县| 赤城县| 辽宁省| 綦江县| 安陆市| 黔南| 新巴尔虎左旗| 台南市| 饶河县| 开封市| 桑植县| 巴楚县| 平凉市| 宝坻区| 浮山县| 扎兰屯市| 荥阳市| 东乡| 容城县| 丹寨县| 保亭| 天水市| 四子王旗| 毕节市| 武冈市| 岳普湖县| 紫阳县| 六安市| 苏州市| 扎兰屯市| 吉首市| 武胜县| 靖远县| 南澳县|