Last Working Day (Friday) Date of Every Month

How to get date of last working day which is friday, of every month in the “24-Nov-23” format in Year 2023?

1 Like

Hi @syedhuzaifa

Can you try the below syntax:

String.Join(vbCrLf,(From month In Enumerable.Range(1, 12)
 Let lastDayOfMonth = New DateTime(2023, month, 1).AddMonths(1).AddDays(-1)
 Let lastFriday = If(lastDayOfMonth.DayOfWeek = DayOfWeek.Friday, lastDayOfMonth, lastDayOfMonth.AddDays(-(lastDayOfMonth.DayOfWeek - DayOfWeek.Friday)))
 Select DateTime.ParseExact(lastFriday.ToString("dd-MMM-yy"), "dd-MMM-yy", CultureInfo.InvariantCulture).ToString("dd-MMM-yy")).ToList())

or you can store it in a variable of DataType System.Collections.Generic.List(Of String)

str_date= (From month In Enumerable.Range(1, 12)
 Let lastDayOfMonth = New DateTime(2023, month, 1).AddMonths(1).AddDays(-1)
 Let lastFriday = If(lastDayOfMonth.DayOfWeek = DayOfWeek.Friday, lastDayOfMonth, lastDayOfMonth.AddDays(-(lastDayOfMonth.DayOfWeek - DayOfWeek.Friday)))
 Select DateTime.ParseExact(lastFriday.ToString("dd-MMM-yy"), "dd-MMM-yy", CultureInfo.InvariantCulture).ToString("dd-MMM-yy")).ToList()

After that use String.Join(vbcrlf,str_date) to print it in message box.

Hope it helps!!

1 Like

@syedhuzaifa

Assign activity:

Variable: lastWorkingDays (List(Of String))

Value:
(From month In Enumerable.Range(1, 12)
 Let lastDayOfMonth = New DateTime(2023, month, 1).AddMonths(1).AddDays(-1)
 Let lastFriday = If(lastDayOfMonth.DayOfWeek = DayOfWeek.Friday, lastDayOfMonth, lastDayOfMonth.AddDays(-(lastDayOfMonth.DayOfWeek - DayOfWeek.Friday)))
 Select DateTime.ParseExact(lastFriday.ToString("dd-MMM-yy"), "dd-MMM-yy", CultureInfo.InvariantCulture).ToString("dd-MMM-yy")).ToList()



Hey @syedhuzaifa
you can try use vb.net code:
BlankProcess89.zip (2.5 KB)
List<string>(12) { "27-Jan-23", "24-Feb-23", "31-Mar-23", "28-Apr-23", "26-May-23", "30-Jun-23", "28-Jul-23", "25-Aug-23", "29-Sep-23", "27-Oct-23", "24-Nov-23", "29-Dec-23" }

Dim lastFridaysList As New List(Of String)
Dim year As Integer = 2023

For month As Integer = 1 To 12
    Dim lastDayOfMonth As DateTime = New DateTime(year, month, DateTime.DaysInMonth(year, month))
    While lastDayOfMonth.DayOfWeek <> DayOfWeek.Friday
        lastDayOfMonth = lastDayOfMonth.AddDays(-1)
    End While
    lastFridaysList.Add(lastDayOfMonth.ToString("dd-MMM-yy"))
Next
lastFridays = lastFridaysList
2 Likes