2017-06-12 11 views
0

指定時間に5分を加算したい場合は、以下のコードを参考にしてください。分を現在の指定時間に追加する

string startTime = "1:00 AM"; 
string endTime = "0:05 AM"; 

TimeSpan duration = DateTime.Parse(endTime).Add(DateTime.Parse(startTime)); 

私は1:05になるために午前1:00までに5分を持っていたことができますどのようにエラーが出続けますか?

+0

質問にエラーメッセージを追加してください –

答えて

1

あなたがendTime文字列を解析した後にのみMinuteプロパティを渡すし、このためにstartTimeの解析されDateTime対象にAddMinutesメソッドを使用する必要がありながら、あなたは、全体DateTimeオブジェクトを渡しています

DateTime updateTime = DateTime.Parse(startTime).AddMinutes(DateTime.Parse(endTime).Minute); 

それは、 1:00 AMすなわち、元DateTime対象に5分を追加DateTimeオブジェクトを返し、reusltは次のようになり1:05

作業を参照してください。DEMO Fiddle here

+1

いいえ、いいえ、これは悪い考えです。このコードは、期間が1から59までの整数分でないものに変わるまで機能します。期間が30秒に変更されるか、1時間に変更されますか?その後、このコードは開始時刻に0分を追加します。 – Kevin

0

AddメソッドにはTimeSpanを取得するオーバーロードがあります。次のようにそれを使用してください:あなたは時間を追加することはできません

DateTime dt = DateTime.UtcNow; // this should be your value actually 
DateTime newTime = dt.Add(TimeSpan.FromMinutes(5); 

System.DateTime.Add method documentation on MSDN

+0

AddMinutesメソッドがより良いオプションです(@Ehsanによる答え) – Artak

2

、あなただけのスパンを追加することができます。ただし、TimeOfDayプロパティを介したDateTimeのスパンを取得することができます:

string startTime = "1:00 AM"; 
string endTime = "0:05 AM"; 

DateTime duration = DateTime.Parse(startTime).Add(DateTime.Parse(endTime).TimeOfDay); 

しかし、直接のtimeSpanを使用すると、(あなたはそれがスパンとない日時であるとして、AMを削除する必要があります)よりお勧めです。

string startTime = "1:00 AM"; 
string endTime = "0:05"; 

DateTime duration = DateTime.Parse(startTime).Add(TimeSpan.Parse(endTime)); 

あなたは数分より何か他のものを追加するつもりは決してないだろうことがわかっている場合、私はこのような何かをしたい:

string startTime = "1:00 AM"; 
int minutes = 5; 

DateTime duration = DateTime.Parse(startTime).AddMinutes(minutes); 

あなたはDateTime hereについて詳しく知ることができます。

+2

+1。オフセット、概念的にプログラムについて考える。あなたには、開始時間と終了時間はありません。あなたは開始時間と持続時間*を持っています。あなたが本当に望むのは、文字列として 'startTime'、整数として 'durationInMinutes'です。 – Kevin

関連する問題