function BusinessDaysSinceFixedDate (const nDate : tDateTime) : integer;
const
Map : array [ -6 .. 6 ] of integer
= ( 0, 0, 1, 2, 3, 4, 5, 5, 5, 6, 7, 8, 9);
var
X : integer;
begin
X := trunc (nDate);
Result := 5 * (X div 7) + Map [ X mod 7 ];
end;
function BusinessDaysBetweenDates (const nStartDate : tDateTime;
const nEndDate : tDateTime) : integer;
begin
Result := BusinessDaysSinceFixedDate (nEndDate)
- BusinessDaysSinceFixedDate (nStartDate);
end;
दिनचर्या BusinessDaysSinceFixedDate एक निश्चित तिथि के बाद से व्यापार के दिनों की गणना। विशिष्ट तारीख, जो अप्रासंगिक है, सोमवार, 25 दिसंबर, 18 99 है। यह बस पारित होने वाले हफ्तों की संख्या (एक्स div 7) की गणना करता है और यह दर्शाता है कि 5. फिर यह दिन के आधार पर सही करने के लिए ऑफसेट जोड़ता है सप्ताह का। ध्यान दें कि (एक्स आधुनिक 7) एक नकारात्मक तारीख के लिए नकारात्मक मान वापस आ जाएगी, 30 दिसंबर से पहले अर्थात एक तिथि, 1899
दिनचर्या BusinessDaysBetweenDates बस आरंभ और समाप्ति तिथि के लिए BusinessDaysSinceFixedDate कॉल करता है और दूसरे से घटा देती है।
स्रोत
2013-02-13 16:43:42
मैं आपको धन्यवाद देता हूं ... मुझे छुट्टियों की आवश्यकता नहीं है क्योंकि वे बदलाव के समय को महत्वपूर्ण रूप से प्रभावित नहीं करेंगे .. लेकिन सप्ताहांत समस्याएं हैं। मैं इसे एक शॉट दूँगा। – Sardukar
मैंने लगभग एक ही समारोह का उपयोग किया .. बहुत अच्छा काम करता है। ऐसे तरीके भी नमूने हो सकते हैं ताकि अगर छुट्टियों के साथ कुछ समस्याएं हों तो वे समग्र रूप से प्रभावित नहीं होंगे .. धन्यवाद। – Sardukar
लूप के बिना ऐसा करना अच्छा होगा। –