Hi HaqBadi,
Refer below sample.
HTML
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.5.1/css/bootstrap-datepicker.css" />
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.5.1/js/bootstrap-datepicker.min.js"></script>
<script type="text/javascript">
$(function () {
$('#txtStartDate,#txtEndDate').datepicker({
format: 'dd/mm/yyyy',
autoclose: true
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<table class="table table-responsive">
<tr>
<td>
Start Date
</td>
<td>
<asp:TextBox ID="txtStartDate" CssClass="form-control" Text="01/10/2017" runat="server" />
</td>
</tr>
<tr>
<td>
End Date
</td>
<td>
<asp:TextBox ID="txtEndDate" runat="server" Text="31/12/2017" CssClass="form-control" />
</td>
</tr>
<tr>
<td>
<asp:Button Text="Display First Day" runat="server" CssClass="btn btn-primary" OnClick="Display" />
</td>
<td>
<asp:Label ID="lblFirstDay" runat="server" />
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
C#
protected void Display(object sender, EventArgs e)
{
lblFirstDay.Text = "";
DateTime startDate = DateTime.ParseExact(txtStartDate.Text, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);
DateTime endDate = DateTime.ParseExact(txtEndDate.Text, "dd/M/yyyy", System.Globalization.CultureInfo.InvariantCulture);
List<DateTime> dates = new List<DateTime>();
if (startDate < endDate)
{
for (DateTime day = startDate.Date; day.Date <= endDate.Date; day = day.AddDays(1))
{
dates.Add(day);
}
}
DateTime[] mondays = dates.Where(d => d.DayOfWeek == DayOfWeek.Monday).ToArray();
List<string> startMondays = new List<string>();
int month = 0;
for (int i = 0; i < mondays.Length; i++)
{
if (month != mondays[i].Month)
{
month = mondays[i].Month;
startMondays.Add(mondays[i].ToString("dd/MM/yyyy"));
}
}
lblFirstDay.Text = "First Monday between <b>" + startDate.ToShortDateString() + "</b> and <b>" + endDate.ToShortDateString() + "</b> are <b>" + string.Join(", ", startMondays) + "</b>";
}
VB.Net
Protected Sub Display(sender As Object, e As EventArgs)
lblFirstDay.Text = ""
Dim startDate As DateTime = DateTime.ParseExact(txtStartDate.Text, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture)
Dim endDate As DateTime = DateTime.ParseExact(txtEndDate.Text, "dd/M/yyyy", System.Globalization.CultureInfo.InvariantCulture)
Dim dates As New List(Of DateTime)()
If startDate < endDate Then
Dim day As DateTime = startDate.[Date]
While day.[Date] <= endDate.[Date]
dates.Add(day)
day = day.AddDays(1)
End While
End If
Dim mondays As DateTime() = dates.Where(Function(d) d.DayOfWeek = DayOfWeek.Monday).ToArray()
Dim startMondays As New List(Of String)()
Dim month As Integer = 0
For i As Integer = 0 To mondays.Length - 1
If month <> mondays(i).Month Then
month = mondays(i).Month
startMondays.Add(mondays(i).ToString("dd/MM/yyyy"))
End If
Next
lblFirstDay.Text = "First Monday between <b>" + startDate.ToShortDateString() + "</b> and <b>" + endDate.ToShortDateString() + "</b> are <b>" + String.Join(", ", startMondays) + "</b>"
End Sub
Screenshot