TimeSpan構造体について質問です
投稿者 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型に変換するにはどうすればいいのかで頭が痛いです
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と同様の手間がかかるような気もします。
デイト型はタイムスパンを演算子+で加算できるようなので、値がデフォルトのデイトに、任意のタイムスパンを加算し、それをトゥストリングしてはいかがでしょうか?
>>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型のデータを加算すればよいですよ。
> 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
ありがとうございました
勉強になりました
>>3
ありがとうございました
勉強になりました
MsgBox(s.ToString("HH時間mm分ss秒"))
と型指定で表示させようとしたらエラーになってしまいました。
この場合どうすれば型を指定して表示させられるのでしょうか?