時間と時間の差(引き算)の仕方

タグの編集
投稿者 トリフ  (社会人) 投稿日時 2011/7/4 21:21:20
このサイトで初めて質問します。

VBの勉強をやり始めてまだ少ししか経ってないので、わからない事がほとんどですが、
数値や、日付などの演算するプログラムはできるのですが、
時間の計算をするプログラムがよく分かりませんので教えてくれると助かります。

使用目的を先にご説明致します。
例えば、2時間の動画ファイルがあったと仮定しますね。
その動画ファイルの一部分のデータだけ抜き取って別のファイルに保存できるソフトが
あるのですが、そのソフトの仕様上、「スタートタイム」と「抜き取りたい時間」を入力して
実行すると、その動画の一部のファイルが作成されるというソフトなのですが、
問題は、そのソフトの事は今回どうでもよいのですが、
例えば、具体的に例をあげるとすると、
スタートタイムを00:00:00を入力して、
抜き取りたい時間を00:30:00と入力した場合、
2時間の動画ファイルのうちの、最初から30分間だけの内容のファイルが作成されます。
この例だとすごく簡単で計算する必要がないので何も問題がないのですが、
例えば次の例の場合、
動画プレイヤーソフトで、
スタートタイム→00:15:25(15分25秒)
抜き取りたい時間→?
エンドタイム→01:23:48(1時間23分48秒)

動画ファイルを再生してて、上記の様にスタートタイムの時刻から
エンドタイムまでの時間を別の動画ファイルとして保存したいと思う事があります。

ですが、今までは全部、「分」に換算して「秒」も計算したりしながら、
凄く面倒でしたので、もしこの時間の計算が簡単にできるプログラムが作れるのであれば、
作りたいなと思っていましたが、上の例でいくと簡単に抜き取りたい時間を算出させるプログラムの
仕方を教えてくだされば非常に助かります。

プログラムの仕様はいたって簡単で構いません。

TextBoxを2個作り、一つはスタート時刻、
もう一つは切り取る最後の部分のエンド時刻を入力して、
コマンドボタンを一つ追加して、ボタンをクリックすると、
エンド時刻からスタート時刻を引いた(差)の時間を画面に表示させる
プログラムを考えております。

大変すみませんが、分かる方よろしくお願いします。

投稿者 shu  (社会人) 投稿日時 2011/7/4 21:39:50
こんなんでどう?

        Dim dt1 As Date = Nothing
        Dim dt2 As Date = Nothing

        Date.TryParseExact(TextBox1.Text, "HH:mm:ss", CultureInfo.InvariantCulture, Globalization.DateTimeStyles.None, dt1)
        Date.TryParseExact(TextBox2.Text, "HH:mm:ss", CultureInfo.InvariantCulture, Globalization.DateTimeStyles.None, dt2)

        If dt1 <> Nothing AndAlso dt2 <> Nothing Then
            Dim df = dt2.Subtract(dt1)
            TextBox3.Text = String.Format("{0:00}:{1:00}:{2:00}", df.Hours, df.Minutes, df.Seconds)
        End If
投稿者 トリフ  (社会人) 投稿日時 2011/7/4 21:51:48
早速、ご回答ありがとうございます。

実際に作ってみてまた返事致しますね。

あと、今回ここの掲示板に初めて登録したのでついうっかり書き忘れておりましたが、
使用環境は、VB2010、VB2008、VB2005、VB2003全てパソコンにインストールされており、
どのバージョンで作れるようになっていますが、
普段はVB2008を主に使用しております。

この事を書き忘れてしまったことをお詫びいたします。
投稿者 トリフ  (社会人) 投稿日時 2011/7/4 22:22:02
無事にプログラムが完成できました。

ありがとうございます。

初心者の私にはプログラムの意味はわかりませんが、
とりあえず、ボタンのイベントプロシージャの中に
教えてくれたプログラムを貼り付けて実行してみたら、
私の作りたかったソフトが完成できました。

本当にありがとうございます。

今回のプログラムの中身に関しては徐々に勉強していきながら解読してみます。
とりあえずはこの自分の作ったソフトを使って使用していきたいと思います。

有難うございました。