TimeSpan構造体について質問です

タグの編集
投稿者 Benzodiazepine  () 投稿日時 2008/9/12 04:10:00
TimeSpan型の変数sに対して、Date型と同じように 
MsgBox(s.ToString("HH時間mm分ss秒")) 
と型指定で表示させようとしたらエラーになってしまいました。 
この場合どうすれば型を指定して表示させられるのでしょうか?
投稿者 Benzodiazepine  () 投稿日時 2008/9/12 05:50:00
とりあえず 
 
Dim hhh, mmm, sss As String 
Dim s As New TimeSpan(5, 100, 1000) 
sss = s.Seconds.ToString 
mmm = s.Minutes.ToString 
hhh = s.Hours.ToString 
MsgBox(hhh & "時間" & mmm & "分" & sss & "秒") 
 
と、バラバラにしたら出来ましたがこんなんでいいものかどうか・・・ 
こんどはDate型に変換するにはどうすればいいのかで頭が痛いです
投稿者 うたひこ  () 投稿日時 2008/9/12 06:55:00
>>1 
 
>>1 
 
こんにちは。 
 
 
 
その構造体もデイト型も使ったことがないので、不確実なことになりますが、オブジェクトブラウザでtimespanと検索すると、タイムスパンコンバーターというクラスがありました。 
 
しかしながらこのクラスの利用にも、>>1と同様の手間がかかるような気もします。 
 
デイト型はタイムスパンを演算子+で加算できるようなので、値がデフォルトのデイトに、任意のタイムスパンを加算し、それをトゥストリングしてはいかがでしょうか?
投稿者 よねKEN  () 投稿日時 2008/9/12 07:13:00
> TimeSpan型の変数sに対して、Date型と同じように  
> MsgBox(s.ToString("HH時間mm分ss秒"))  
> と型指定で表示させようとしたらエラーになってしまいました。  
 
TimeSpan型のToStringメソッドには書式を指定するバージョンのメソッドはありません。 
ですので、TimeSpan型のみを使う場合、Benzodiazepineさんが提示されたような方法になると思います。 
 
その代り、 
 
MessageBox.Show(New System.DateTime(0).Add(New System.TimeSpan(5,6,7)).ToString("hh時間mm分ss秒")) 
 
のようにDate型(DateTime構造体)を使って適当な日付を基準日として、TimeSpan型で指定した分の時間を経過された日付を作成して、Date型の機能で書式化することはできます。 
#MessageBox.ShowはMsgBoxでも可。 
#System.DateTimeはDateでも可。 
#System.TimeSpanはTimeSpanでも可。 
 
> この場合どうすれば型を指定して表示させられるのでしょうか? 
 
ご質問になっている内容は一般に「型を指定する」とは言わず、 
「書式を指定する」と言います。 
 
> こんどはDate型に変換するにはどうすればいいのかで頭が痛いです。 
 
TimeSpanは時間(日時と日時の間隔)なので、そのままではDate型にできませんが、 
上で例示したような感じで基準となる日付にAddメソッドで 
TimeSpan型のデータを加算すればよいですよ。
投稿者 Benzodiazepine  () 投稿日時 2008/9/12 07:47:00
>>2 
>>3 
ありがとうございました 
勉強になりました