csharp 日时关连の处理をまとめた拡张メソッド

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp 日时关连の处理をまとめた拡张メソッド相关的知识,希望对你有一定的参考价值。

/// <summary>
/// DateTime型拡張メソッド定義
/// </summary>
public static class DateTimeUtil
{
    private static readonly int FiscalYearStartingMonth = 4;

    /// <summary>
    /// 該当年月の日数を返す
    /// </summary>
    /// <param name="dt">DateTime</param>
    /// <returns>DateTime</returns>
    public static int DaysInMonth(this DateTime dt)
    {
        return DateTime.DaysInMonth(dt.Year, dt.Month);
    }

    /// <summary>
    /// 月初日を返す
    /// </summary>
    /// <param name="dt">DateTime</param>
    /// <returns>Datetime</returns>
    public static DateTime BeginOfMonth(this DateTime dt)
    {
        return dt.AddDays((dt.Day - 1) * -1);
    }

    /// <summary>
    /// 月末日を返す
    /// </summary>
    /// <param name="dt">DateTime</param>
    /// <returns>DateTime</returns>
    public static DateTime EndOfMonth(this DateTime dt)
    {
        return new DateTime(dt.Year, dt.Month, DaysInMonth(dt));
    }

    /// <summary>
    /// 時刻を落として日付のみにする
    /// </summary>
    /// <param name="dt">DateTime</param>
    /// <returns>DateTime</returns>
    public static DateTime StripTime(this DateTime dt)
    {
        return new DateTime(dt.Year, dt.Month, dt.Day);
    }

    /// <summary>
    /// 日付を落として時刻のみにする
    /// </summary>
    /// <param name="dt">DateTime</param>
    /// <param name="base_date">DateTime* : 基準日</param>
    /// <returns>DateTime</returns>
    public static DateTime StripDate(this DateTime dt, DateTime? base_date = null)
    {
        base_date = base_date ?? DateTime.MinValue;
        return new DateTime(base_date.Value.Year, base_date.Value.Month, base_date.Value.Day, dt.Hour, dt.Minute, dt.Second);
    }

    /// <summary>
    /// 該当日付の年度を返す
    /// </summary>
    /// <param name="dt">DateTime</param>
    /// <param name="startingMonth">int? : 年度の開始月</param>
    /// <returns>int</returns>
    public static int FiscalYear(this DateTime dt, int? startingMonth = null)
    {
        return (dt.Month >= (startingMonth ?? FiscalYearStartingMonth)) ? dt.Year : dt.Year - 1;
    }
}

以上是关于csharp 日时关连の处理をまとめた拡张メソッド的主要内容,如果未能解决你的问题,请参考以下文章

csharp [ワークシートの作成] AddWorksheetメソッドかXLWorkbookインスタンスの工作表プロパティの添加メソッドを使用します。#ClosedXML

csharp C#5.0 async / awaitでの主要メソッドの书き方

csharp 指定した类型の界面をすべて取得する静メソッド

csharp [ワークシートの取得] TryGetWorksheetメソッドでは戻りりででーーーううう

typescript moment.jsのDIFFメソッドの挙动

csharp FromComponentInNewPrefabメソッドは,引数の预制をインスタンス化してアタッチされたコンポーネントを注入するhttp://negi-lab.blog.jp/Zenje