VB . net code --------------------------------- Imports System Public Class Program Const OFFSET As Integer = 3 Private RetryCount As Integer = 0 Const COUNTRYCODE As String = "GBR" Private TARGETDATE As String = "NODATE" Public Shared Sub Main() Dim class1 As Program = New Program() class1.otherufnnc() End Sub Public Function getMonthValue(ByVal month As String) As Integer Select Case month.ToUpper() Case "JANUARY" Return 1 Case "FEBRUARY" Return 2 Case "MARCH" Return 3 Case "APRIL" Return 4 Case "MAY" Return 5 Case "JUNE" Return 6 Case "JULY" Return 7 Case "AUGUST" Return 8 Case "SEPTEMBER" Return 9 Case "OCTOBER" Return 10 Case "NOVEMBER" Return 11 Case Else Return 12 End Select End Function Private Function addMonthOffset(ByVal month As Integer, ByVal offset As Integer) As Integer Return If(((month + offset) > 12), ((month + offset) - 12), (month + offset)) End Function Private Function subtractMonthOffset(ByVal month As Integer, ByVal offset As Integer) As Integer Return If(((month - offset) <= 0), ((month - offset) + 12), (month - offset)) End Function Class MonthValue Private strMonth As String Private nYear As Integer = 0 Private nMonth As Integer = 0 Private nDay As Integer = 0 Public Sub New(ByVal _strMonth As String) strMonth = _strMonth If Not String.IsNullOrEmpty(strMonth) Then Dim tokens As String() = strMonth.Split("-"c) nYear = Integer.Parse(tokens(0)) nMonth = Integer.Parse(tokens(1)) nDay = Integer.Parse(tokens(2)) End If End Sub Public Function getYear() As Integer Return nYear End Function Public Function getMonth() As Integer Return nMonth End Function Public Function getDay() As Integer Return nDay End Function End Class Public Sub otherufnnc() Dim flagOnshore As Integer = 0 Dim flagDataCheck As Integer = 0 Dim flag1 As Integer = 0 Dim flag2 As Integer = 0 Dim flag3 As Integer = 0 Dim submittedDate As String = Nothing Dim strPeriodStartDate As String = Nothing Dim PayrollMonth As String = Nothing Dim schemeType As String = Nothing Dim isSLADateValid As Boolean If Not String.IsNullOrEmpty(submittedDate) AndAlso Not String.IsNullOrEmpty(strPeriodStartDate) AndAlso Not String.IsNullOrEmpty(PayrollMonth) Then Dim submittedDt As MonthValue = New MonthValue(submittedDate) Dim periodStartDt As MonthValue = New MonthValue(strPeriodStartDate) Dim payrollMonth As Integer = getMonthValue(PayrollMonth) If payrollMonth = submittedDt.getMonth() Then flag1 = 1 ElseIf addMonthOffset(payrollMonth, 1) = submittedDt.getMonth() Then flag1 = 2 ElseIf submittedDt.getMonth() = subtractMonthOffset(payrollMonth, 1) Then flag1 = 4 ElseIf submittedDt.getMonth() >= addMonthOffset(payrollMonth, 2) Then flag1 = 3 End If If submittedDt.getYear() = periodStartDt.getYear() Then flag2 = 1 ElseIf submittedDt.getYear() = (periodStartDt.getYear() + 1) Then flag2 = 2 End If Dim currentDate As DateTime = DateTime.Now Dim subDate As DateTime = DateTime.Parse(submittedDt.getYear() & "-" & submittedDt.getMonth() & "-" & 22) If currentDate.CompareTo(subDate) < 0 Then flag3 = 1 End If If Not schemeType.ToUpper().Equals("ONSHORE") Then flagOnshore = 1 End If Dim year As Integer = periodStartDt.getYear() If flag1 = 1 AndAlso flag2 = 2 AndAlso flag3 = 1 Then year = year + 1 End If Dim strPayrollMonth As String = "" If payrollMonth > 9 Then strPayrollMonth = strPayrollMonth & payrollMonth Else strPayrollMonth = strPayrollMonth & "0" & payrollMonth End If Dim dtTargetDate As DateTime = DateTime.Parse(year & "-" & strPayrollMonth & "-22") dtTargetDate = dtTargetDate.AddMonths(1) TARGETDATE = dtTargetDate.ToString("dd/MM/yyyy") Else flagDataCheck = 1 End If If ((flag1 = 1 AndAlso flag2 = 1) OrElse (flag1 = 2 AndAlso flag2 = 1 AndAlso flag3 = 1) OrElse (flag1 = 2 AndAlso flag2 = 2 AndAlso flag3 = 1) OrElse (flag1 = 4) OrElse (flag1 = 1 AndAlso flag2 = 2 AndAlso flag3 = 1)) AndAlso flagDataCheck = 0 AndAlso flagOnshore = 0 Then isSLADateValid = True Else isSLADateValid = False End If End Sub End Class