0

やあ

VB を使用して問題を解決しようとしていますが、支援が必要です。私は言語に非常に慣れていません(1週間)。問題は、タイム シートに似た 2 つの異なる時間の間に何時間と何分が経過したかを示すユーザー フォームを作成したことです。

ユーザー フォームは 2 つのカレンダーで構成され、各カレンダーの下には 2 つのテキスト ボックスがあります。出発した時間と分を記録するためにそれぞれ 1 つのボックスと、彼らが戻ってきた時間を記録するためにさらに 2 つのボックスがありました。

コードを使用してカレンダーを差し引き (例: カレンダー イン – カレンダー アウト)、これを 24 で計って時間差を示します。次に、予定表の下に、ユーザーが残り時間を入力するためのテキスト ボックスがあります。次に、24 を Hour out で差し引きます。たとえば、24 -15 の場合は 9 (その日の 9 時間) と表示され、それをテキスト ボックスの Hour in (Return Time) に挿入した数値に追加します。例: 14. 次に、それらを合計して、例: 9 + 14 = 23 とし、これを別のテキスト ボックスの合計時間に表示します。したがって、23 時間を意味する 23 が表示されます。

次に、分を示す別の 2 つのテキスト ボックスを表示したいと思います。1 つはミニッツ アウト、次にミニッツ インです。

たとえば、アウト時間が 15:50 で、翌日のイン時間が 15:55 の場合、これらの分を変換する際に問題が発生し、24 (一方のテキスト ボックス) および 105 分 (もう一方のテキスト) と表示されます。箱)。時間に分を追加し、分のテキスト ボックスに残りの分を表示したいと思います。これにより、24 (1 つのテキスト ボックス) と 5 (別のテキスト ボックス) が表示されます。

最終的な目的は、人が何日、何時間、何分、たとえば 2 日、5 時間、10 分間不在だったかを示す結果を得ることです。これを達成するためにコードを変更する方法についてのアイデアはありますか?

これが私のコードです。

助けてください

Dim number1 As Date
Dim number2 As Date
Dim number3 As Integer
Dim number4 As Integer
Dim Number5 As Integer
Dim Number6 As Integer
Dim answer  As Integer
Dim answer2 As Integer
Dim answer3 As Integer
Dim answer4 As Integer
Dim answer5 As String

number1 = DTPicker1
number2 = DTPicker2
number3 = Txthourout
number4 = TxtHourin
Number5 = TxtMinuteout
Number6 = TxtMinuetIn


answer = number2 - number1
answer2 = answer * 24
answer3 = answer2 - number3
answer4 = answer3 + number4

answer5 = Number5 + Number6


TextBox1.Text = answer4
TextBox2.Text = answer5

End Sub
4

2 に答える 2

1

答えとしては、日付には日付と時刻が含まれており、実際には日付が整数部分を補う数値として格納されていることを通知する必要があります (ただし、nax 値よりも大きくなる可能性があるIntegerため、必ず変数を使用してください)入力Longして日付部分を保存します)。

次に、2 つの日付の差を取り、その答えをDate変数に再度入れると、探している答えが簡単に得られます。

dtDiff = dtEnd - dtStart

これで次の操作を実行できるようになりました。

intDaysDiff = Int(dtDiff) 'As the number of days between the two dates is expected to be small enough we can use the Int() function
intHoursDiff = Hour(dtDiff)
intMinutesDiff = Minute(dtDiff)

分単位、時間単位などを取得するには、同じ方法を使用します

ユーザーフォームでユーザーに必要に応じてそれらを報告します。

于 2012-11-13T16:39:37.430 に答える
0

これで始められるはずです。日付差分構文については、このリンクを参照してください。

Dim d1 As Date, d2 As Date, diff As Variant
'sample dates
d1 = DateTime.Now   '<--you'd use your calendar 1 here
d2 = DateTime.DateAdd("h", 4, d1)   '<--you'd use your calendar 2 here

'change "h" to what ever part of the different you want.
diff = DateTime.DateDiff("h", d1, d2)

CDateおよびFormat関数も参照してください。これらを使用して、何かが適切な日付形式であることを確認し、日付を好みの文字列表現に変換できます。

于 2012-11-13T16:57:11.253 に答える