Recent

Author Topic: سؤال حول دوال التاريخ  (Read 321 times)

Al-Eid

  • Jr. Member
  • **
  • Posts: 65
سؤال حول دوال التاريخ
« on: January 21, 2023, 11:30:26 am »

السلام عليكم

هل توجد دالة تعمل مثل الدالة DaysBetween ولكن مع إمكانية عدم حساب أيام نهاية أيام الأسبوع أو أيام محددة

Zaher

  • Hero Member
  • *****
  • Posts: 678
    • parmaja.org
Re: سؤال حول دوال التاريخ
« Reply #1 on: January 21, 2023, 11:36:36 am »
اتذكر لا يوجد و قمت بزماني بعمل واحد على يدي ، هو مهم في برامج احتساب الرواتب و الاجور، لاستثناء ايام الاجازات
قمت بعمل مسح لكل الايام و عدها

Al-Eid

  • Jr. Member
  • **
  • Posts: 65
Re: سؤال حول دوال التاريخ
« Reply #2 on: January 21, 2023, 04:26:47 pm »

بارك الله فيك على المعلومة
لقد بحثت في الأنترنت وجدت هده يمكن أن تعيطني رأيك فيها



Code: Pascal  [Select][+][-]
  1. function BusinessDaysBetween(const FirstDate, SecondDate: TDateTime): Integer;
  2. var
  3.   CurrDate : TDateTime;
  4.   StartDate, EndDate: TDateTime;
  5. begin
  6.   if SecondDate > FirstDate then
  7.   begin
  8.     StartDate := FirstDate;
  9.     EndDate := SecondDate;
  10.   end
  11.   else
  12.   begin
  13.     StartDate := SecondDate;
  14.     EndDate := FirstDate;
  15.   end;
  16.  
  17.   CurrDate := StartDate;
  18.   Result := 0;
  19.  
  20.   while (CurrDate <= EndDate) do
  21.   begin
  22.     if DayOfTheWeek(CurrDate) < 6 then
  23.       Inc(Result);
  24.     CurrDate := CurrDate + 1;
  25.   end;
  26. end;
  27.  
  28.  

Zaher

  • Hero Member
  • *****
  • Posts: 678
    • parmaja.org
Re: سؤال حول دوال التاريخ
« Reply #3 on: January 21, 2023, 05:40:44 pm »
الكود يحسب عدد الايام عدا ايام السبت والأحد،
للتوضيح قمت باختصاره لك وتوضيح لا يساوي رقم 5 بدل من أصغر من 6، في حال اردت استبداله بيوم الجمعة الذي رقمه 5

Code: Pascal  [Select][+][-]
  1. function BusinessDaysBetween(const FirstDate, SecondDate: TDateTime): Integer;
  2. begin
  3.   Result := 0;
  4.   while (FirstDate <= SecondDate) do
  5.   begin
  6.     if DayOfTheWeek(FirstDate) <> 5 then // 5 is Friday
  7.       Inc(Result);
  8.     FirstDate := FirstDate + 1;
  9.   end;
  10. end;
  11.  

Al-Eid

  • Jr. Member
  • **
  • Posts: 65
Re: سؤال حول دوال التاريخ
« Reply #4 on: January 22, 2023, 11:02:53 am »
حسب ردك هذا فإن الدالة جيدة وهذا ما كنت أريد أن أعرفه
مع العلم أني لم أنتبه في البداية بمشكل أرقام الأبام
بارك الله فيك

 

TinyPortal © 2005-2018