Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
6 years ago
Solved

Help to exclude Holidays

Hi, everyone

 

I have the following Query to get the days between two dates excluding weekends, so now I need exclude Holidays too, anyone have a solution for it? I have Holidays from other table

 

Query:

 

let
Source = (InitialDate as date, FinalDate as date ) as number =>
let
DaysBetweenDates = Duration.Days(FinalDate-InitialDate)
DaysList = List.Dates(List.Min({InitialDate,FinalDate}),Number.Abs(DaysBetweenDates)+1, Duration.From(1)),
WeekDaysList = List.Select(DaysList, each (Date.DayOfWeek(_, Day.Monday) < 5) ),
WorkingDays = (if DaysBetweenDates < 0 then -1 else 1) * List.Count(WeekDaysList)
in
WorkingDays
in
Source

 

Regards

 

  • Hi Anonymous ,

     

    Try this one:

     

    let
    Source = (InitialDate as date, FinalDate as date ) as number =>
    let
    DaysBetweenDates = Duration.Days(FinalDate-InitialDate),
    DaysList = List.Dates(List.Min({InitialDate,FinalDate}),Number.Abs(DaysBetweenDates)+1, Duration.From(1)),
    WeekDaysList = List.Select(DaysList, each (Date.DayOfWeek(_, Day.Monday) < 5) ),
    WorkingDays = (if DaysBetweenDates < 0 then -1 else 1) * List.Count(WeekDaysList),
    Holidays = List.Select(Holiday[Date], each Date.From(_) >= InitialDate and Date.From(_) <= FinalDate),
    Result = WorkingDays - List.Count(Holidays)
    in
    Result
    in
    Source

     

    Did I answer your question? Mark my post as a solution!
    Ricardo

3 Replies

  • camargos88's avatar
    camargos88
    Icon for Community Champion rankCommunity Champion

    Hi Anonymous ,

     

    Try this one:

     

    let
    Source = (InitialDate as date, FinalDate as date ) as number =>
    let
    DaysBetweenDates = Duration.Days(FinalDate-InitialDate),
    DaysList = List.Dates(List.Min({InitialDate,FinalDate}),Number.Abs(DaysBetweenDates)+1, Duration.From(1)),
    WeekDaysList = List.Select(DaysList, each (Date.DayOfWeek(_, Day.Monday) < 5) ),
    WorkingDays = (if DaysBetweenDates < 0 then -1 else 1) * List.Count(WeekDaysList),
    Holidays = List.Select(Holiday[Date], each Date.From(_) >= InitialDate and Date.From(_) <= FinalDate),
    Result = WorkingDays - List.Count(Holidays)
    in
    Result
    in
    Source

     

    Did I answer your question? Mark my post as a solution!
    Ricardo

    • Anonymous's avatar
      Anonymous
      Not applicable

      Hi camargos88 

       

      Thanks so much!! you saved me

       

      I tried this method and it works 😄

       

      Regards