web-dev-qa-db-ja.com

C#:時間を減算する最も簡単な方法は何ですか?

私は仕事のスケジュールを立てるのに役立つツールをまとめようとしています。以下を解決する最も簡単な方法は何ですか?

午前8時+ 5時間=午後1時

そして

午後5:00-2時間=午後3:00

そして

午後5時30分-:45 = 4:45

等々。

26
Sinaesthetic

正と負のタイムスパンをサポートしているため、これらはすべて DateTime.Add(TimeSpan) で実行できます。

_DateTime original = new DateTime(year, month, day, 8, 0, 0);
DateTime updated = original.Add(new TimeSpan(5,0,0));

DateTime original = new DateTime(year, month, day, 17, 0, 0);
DateTime updated = original.Add(new TimeSpan(-2,0,0));

DateTime original = new DateTime(year, month, day, 17, 30, 0);
DateTime updated = original.Add(new TimeSpan(0,45,0));
_

または、同様に DateTime.Subtract(TimeSpan) メソッドを使用することもできます。

52
Steve Townsend

ここですべてのDateTimeメソッドを確認してください: http://msdn.Microsoft.com/en-us/library/system.datetime.aspx

Add指定したTimeSpanの値をこのインスタンスの値に追加する新しいDateTimeを返します。

AddDays指定した日数をこのインスタンスの値に追加する新しいDateTimeを返します。

AddHours指定した時間数をこのインスタンスの値に追加する新しいDateTimeを返します。

AddMilliseconds指定されたミリ秒数をこのインスタンスの値に追加する新しいDateTimeを返します。

AddMinutes指定した分数をこのインスタンスの値に追加する新しいDateTimeを返します。

AddMonths指定した月数をこのインスタンスの値に追加する新しいDateTimeを返します。

AddSeconds指定した秒数をこのインスタンスの値に追加する新しいDateTimeを返します。

AddTicks指定した数のティックをこのインスタンスの値に追加する新しいDateTimeを返します。

AddYears指定した年数をこのインスタンスの値に追加する新しいDateTimeを返します。

24
DJ Quimby

これも機能します:

System.DateTime dTime = DateTime.Now();

// tSpan is 0 days, 1 hours, 30 minutes and 0 second.
System.TimeSpan tSpan = new System.TimeSpan(0, 1, 3, 0); 

System.DateTime result = dTime + tSpan;

年を減算するには:

DateTime DateEnd = DateTime.Now;
DateTime DateStart = DateEnd - new TimeSpan(365, 0, 0, 0);
7
rboarman

TimeSpanオブジェクトを使用して初期時間要素をキャプチャし、AddHoursAddMinutesなどのメソッドを使用します。 3時間を差し引くには、AddHours(-3)を実行します。 45分を差し引くには、AddMinutes(-45)を実行します

6
Fadrian Sudaman

こんにちは、DateTimeから整数値のみを減算する場合は、このようなコードを書く必要があります

DateTime.Now.AddHours(-2)

ここでは、現在の日時から2時間を差し引いています

1
Zack

これを試して

namespace dateandtime
{

    class DatesTime
    {

        public static DateTime Substract(DateTime now, int hours,int minutes,int seconds)
        {
            TimeSpan T1 = new TimeSpan(hours, minutes, seconds);
            return now.Subtract(T1);
        }


        static void Main(string[] args)
        {
            Console.WriteLine(Substract(DateTime.Now, 36, 0, 0).ToString());

        }
    }
}
0
user1401491