- PR -

Datetime の加算

投稿者投稿内容
未記入
大ベテラン
会議室デビュー日: 2005/08/25
投稿数: 145
投稿日時: 2007-02-08 12:02
現在時刻に30分足した時刻を取得しようと思っているのですが

DateTime ima = DateTime.Now;
TimeSpan imaima = TimeSpan.Parse(ima.ToString());
TimeSpan sanju = TimeSpan.Parse("0:30:00");
TimeSpan ima30 = imaima + sanju;

この行で
TimeSpan imaima = TimeSpan.Parse(ima.ToString());

FormatException はハンドルされませんでした。
入力文字列の形式が正しくありません。

とエラーになります。
原因をお分かりになる方教えていただけるとうれしいです。
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2007-02-08 12:08
引用:

未記入さんの書き込み (2007-02-08 12:02) より:
現在時刻に30分足した時刻を取得しようと思っているのですが



AddMinutes()メソッドですね。

こちらが参考になりませんか?
http://jeanne.wankuma.com/tips/datetime/addminutes.html

_________________
R・田中一郎 -  R.Tanaka.Ichiro’s Blog
ダッチ
大ベテラン
会議室デビュー日: 2005/10/31
投稿数: 113
投稿日時: 2007-02-08 12:30
30分を加算するのは R・田中一郎さん の回答でズバッと解決すると思います。

引用:

未記入さんの書き込み (2007-02-08 12:02) より:

この行で
TimeSpan imaima = TimeSpan.Parse(ima.ToString());

FormatException はハンドルされませんでした。
入力文字列の形式が正しくありません。

とエラーになります。
原因をお分かりになる方教えていただけるとうれしいです。



こちらについてはまず MSDN を参照してください。
ima.ToString() の結果が TimeSpan.Parse メソッド で受け取れる形式になっていますか?
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2007-02-08 12:40
DateTimeとTimeSpanの意味の違いは正しく把握していますか?
基本的に意味が異なるので、文字列表現も同じ形式にはなりません。
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2007-02-08 12:46
「時刻」と「時間」という概念を区別すれば理解できると思います。
_________________
囚人のジレンマな日々
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2007-02-08 13:14
囚人さんの言う「時刻」というのは、時間軸上のある瞬間を表します。これはDateTimeです。
「時間」というのは長さです。これはTimeSpanです。

「最終電車の発車時刻は1時間半です」
「彼は約束の時間から午後2時45分遅れている」
おかしいでしょ?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-02-08 13:20
「時刻」 と 「時間」 だと同じ意味に捉える人が結構います。
で、私が説明で良く使うのは、
  • System.DateTime == 時刻という絶対値
  • System.TimeSpan == 相対的な経過時間
ですね。

このあたりは、メンバを見ればわかる範囲だと思いますが。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
未記入
大ベテラン
会議室デビュー日: 2005/08/25
投稿数: 145
投稿日時: 2007-02-08 14:31
R・田中一郎さん。
ありがとうございます。別の切り口ですね。
メソッドやプロパティが豊富すぎて使いこなせてない自分がなさけないです。

ダッチさん。
ありがとうございます。

DateTime ima = DateTime.Now;
TimeSpan imaima = TimeSpan.Parse(ima.ToString());

ここの形式があってないのですね。
なんだか、DateTime.Nowってデフォルトといいますか
基本的な形式なのだから
TimeSpan.Parse(ima.ToString());
これでさくっといけてもよさそうなものですが
形式の調整が必要ですね。
お世話になりました。

スキルアップ/キャリアアップ(JOB@IT)