2015-06-24 56 views
0

我在VB.NET的工作,但只是在尋找一個公式,給我以下內容:給定的開始時間和分鐘的間隔,確定當前是否是時間間隔

說我有一個過程需要在開始時間和結束時間之間每隔x分鐘啓動一次。每一分鐘我都需要確定是否需要啓動流程。

所以,如果我有以下幾點:

StartTime = 8:00:00 AM 
EndTime = 11:00:00 PM 
IntervalMinutes = 7 

我有一個定時器設定火每隔1分鐘。我需要確定當前時間是否是啓動流程的時間。

目前我只是使用一個循環,將IntervalMinutes添加到StartTime並將其與當前時間和EndTime進行比較。如果StartTime = CurrentTime,則啓動。如果StartTime> End Time則退出循環。我知道它很笨重,但它工作。然而,隨着它在當天晚些時候,它必須重複更多的時間。我知道這必須有一個公式,但是我的大腦因尋找和思考而死亡。

+0

爲什麼不使用'LastTimeFired'變量 – Plutonix

+1

你可以每隔IntervalMinutes而不是每分鐘都啓動計時器嗎? –

+0

該應用程序用於啓動多個進程,每個進程有不同的開始時間,結束時間和間隔。這是我能想到的最簡單的方法來處理這個問題。 – tolsen64

回答

1

我假模運算:

float tolerance = 0.0001f; 

if((CurTime - StartTime) % IntervalMinutes <= tolerance) 
{ 
    // Do something 
} 
+1

謝謝!這個工作,現在我看到它,這很容易。踢自己現在。 – tolsen64

+1

這是我想出了在VB.NET: '如果((現在 - 開始時間).TotalMinutes國防部IntervalMinutes)<1 Then' '」啓動Process' '結束If' – tolsen64

0

你可以預先calcualte所有的開始時間和結束時間之間的推出時間上的應用開始,然後每次把它們放到一個列表,你只需要檢查定時器觸發如果當前時間== launchList [0]。如果它啓動並從列表中刪除該條目。

相關問題