私は仕事のためのアプリケーションをやっていて、私はちょうどbrickwallに遭遇しました。時間が深夜を過ぎるとDateTimeの範囲の問題
私たちは3シフト、06:00-13:36,13:36-23:00および23:00-06:00を持っています。 私は2つのラベル、1次のコードを使用してシフト開始時間と他のシフト終了時刻を表示する必要があります。
Dim StartTimeN As Date = DateTime.Now.AddDays(-1).ToShortDateString & " 23:01"
Dim EndTimeN As Date = DateTime.Now.ToShortDateString & " 06:00"
Dim StartTimeF As Date = DateTime.Now.ToShortDateString & " 06:01"
Dim EndTimeF As Date = DateTime.Now.ToShortDateString & " 13:36"
Dim StartTimeE As Date = DateTime.Now.ToShortDateString & " 13:37"
Dim EndTimeE As Date = DateTime.Now.ToShortDateString & " 23:00"
Dim CurrentTime As Date = DateTime.Now
If (CurrentTime.Ticks >= StartTimeN.Ticks And CurrentTime.Ticks <= EndTimeN.Ticks) Then
Label1.Text = "23:00"
Label2.Text = "06:00"
ElseIf (CurrentTime.Ticks >= StartTimeF.Ticks And CurrentTime.Ticks <= EndTimeF.Ticks) Then
Label1.Text = "06:00"
Label2.Text = "13:36"
ElseIf (CurrentTime.Ticks >= StartTimeE.Ticks And CurrentTime.Ticks <= EndTimeE.Ticks) Then
Label1.Text = "13:36"
Label2.Text = "23:00"
End If
コードがナイトシフトを除いて、正常に動作します。私はSQLからdatacollectionを混乱させるので、23-00の間に追加日(-1)を持つことはできません。 私はshiftours(例えば、06:00-13:36など)の間にSQLデータを収集するグラフを持っています。 AddDays(-1)は前日のデータを収集するので、23:00から23:59までの時間に問題が発生します。 SUMのクエリは、私が23と00の間の時間を解決するかどうかはわかりませんDateTime.Now.ToShortDateString &「label1data(shiftstart)」とDateTime.Now
間使用しています選択し、私はIF、単一のステートメントを作成する必要がありますかSQL特定のSQL関数を使用して、23:00-00:00と00:00-06:00の結果を一緒に追加するか、これを行う簡単な方法がありますか?
私は初心者ですが、答えが簡単なのは残念ですが、この問題はアプリケーションをあきらめてしまったため、正常に動作しませんでした。
また、shiftthoursに基づく他の関数は、shiftstartとDateTime.Nowの間のTimeSpanを計算して、これまでにシフトを通過した時間を取得します。最大キャパシティで稼働した場合に生産された製品の数を表示するには、maxproducts/hourをそれに掛けます。アプリケーション全体は、シフト中にオペレータの生産に関する情報を表示したときに構築されます。
ありがとうございました。
をあなたは申し訳ありません。オプションStrict' – Plutonix
イム 'をオンにする必要がありますが、私はその1つの上に読む必要があります。それに精通していない:)ヒントのおかげで! – enial