Calculate bussines working days

Calculate the previous working business day based on today’s date. Consider weekends (Saturday and Sunday) as non-working days.

input: Todays date

output: previous working day

input:23rd July

output: Monday

input:22nd July

output: Friday

@Shravan_Pintu

// Assign activity
previousWorkingDay = If(today.DayOfWeek = DayOfWeek.Monday, today.AddDays(-3), 
                        If(today.DayOfWeek = DayOfWeek.Sunday, today.AddDays(-2), 
                        If(today.DayOfWeek = DayOfWeek.Saturday, today.AddDays(-1), today.AddDays(-1))))

previousWorkingDayName = previousWorkingDay.ToString("dddd")


1 Like

Hi @Shravan_Pintu

For Today

previousWorkingDay = Enumerable.Range(1, 7).Select(Function(i) DateTime.Now.AddDays(-i)).First(Function(d) d.DayOfWeek <> DayOfWeek.Saturday AndAlso d.DayOfWeek <> DayOfWeek.Sunday).ToString("dddd") 

Or

Using Input date

InputDate = New DateTime(2024, 7, 22)
previousWorkingDay = Enumerable.Range(1, 7).Select(Function(i) inputDate.AddDays(-i)).First(Function(d) d.DayOfWeek <> DayOfWeek.Saturday AndAlso d.DayOfWeek <> DayOfWeek.Sunday).ToString("dddd")

InputDate DataType : System.DateTime
previousWorkingDay DataType : System.String

Regards,

1 Like

@Shravan_Pintu

Assign todayDate = Now
Assign previousWorkingDay = todayDate

Switch todayDate.DayOfWeek
Case DayOfWeek.Monday
Assign previousWorkingDay = todayDate.AddDays(-3) ’ Previous Friday
Case DayOfWeek.Tuesday
Assign previousWorkingDay = todayDate.AddDays(-1) ’ Previous Monday
Case DayOfWeek.Wednesday
Assign previousWorkingDay = todayDate.AddDays(-1) ’ Previous Tuesday
Case DayOfWeek.Thursday
Assign previousWorkingDay = todayDate.AddDays(-1) ’ Previous Wednesday
Case DayOfWeek.Friday
Assign previousWorkingDay = todayDate.AddDays(-1) ’ Previous Thursday
Case DayOfWeek.Saturday
Assign previousWorkingDay = todayDate.AddDays(-1) ’ Previous Friday
Case DayOfWeek.Sunday
Assign previousWorkingDay = todayDate.AddDays(-2) ’ Previous Friday

Hi @Shravan_Pintu

You can use the simple expression to get the Previous working business day based on today’s date, check the below expression,

- Assign -> Previousworkingday = If(DateTime.Now.AddDays(-1).DayOfWeek.ToString.Equals("Saturday") AndAlso Not(DateTime.Now.AddDays(-1).DayOfWeek.ToString.Equals("Sunday")), DateTime.Now.AddDays(-2).DayOfWeek.ToString, If(DateTime.Now.AddDays(-1).DayOfWeek.ToString.Equals("Sunday"), DateTime.Now.AddDays(-3).DayOfWeek.ToString, DateTime.Now.AddDays(-1).DayOfWeek.ToString))

Check the below workflow for better understanding,

The above expression will meet each and every requirement as your mentioned in your query.

Hope it helps!!

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.