Background information
Just starting out to learn C#, im trying to build a simple web app that calculate the no of working day(s) between 2 dates.
The UI of the web app
The basic logic is when the user input a date (ie 01/05/2018) and click the button.It will calculate the total number of working day (exclude weekends and public holidays).
The problem now is the calculation isnt accurate ie between 23/05/2018 & 31/05/2018 it shows 6, it should be 7 days. And it doesnt take the dates into consideration during calculation
namespace testtest
{
public partial class First : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }
    //on btn click
    protected void Button1_Click(object sender, EventArgs e)
    {
        string dt = TextBox1.Text;
        DateTime dtDDMMYYYY = ParseDate(dt);
        string dt2 = TextBox2.Text;
        DateTime dtDDMMYYYY2 = ParseDate(dt2);
       List<DateTime> list = new List<DateTime> { 
        DateTime.ParseExact("04/05/2018", "dd/MM/yyyy", 
       CultureInfo.InvariantCulture) };
        DaysLeft(dtDDMMYYYY, dtDDMMYYYY2, true, list);
    }
    public DateTime ParseDate(string date)
    {
        DateTimeFormatInfo dateFormatProvider = new DateTimeFormatInfo();
        dateFormatProvider.ShortDatePattern = "dd/MM/yyyy";
        return DateTime.Parse(date, dateFormatProvider);
    }
    public int DaysLeft(DateTime startDate, DateTime endDate, Boolean 
     excludeWeekends, List<DateTime> excludeDates)
    {
        int count = 0;
        for (DateTime index = startDate; index < endDate; index = 
        index.AddDays(1))
        {
            if (excludeWeekends && index.DayOfWeek != DayOfWeek.Sunday && 
           index.DayOfWeek != DayOfWeek.Saturday)
            {
                bool excluded = false; ;
                for (int i = 0; i < excludeDates.Count; i++)
                {
                    if (index.Date.CompareTo(excludeDates[i].Date) == 0)
                    {
                        excluded = true;
                        break;
                    }
                }
                if (!excluded)
                {
                    count++;
                }
            }
        }
        result.Text = count.ToString();
        return count;
    }
}
}

 
     
    
dates into consideration during calculation .Any idea?thanks
– epiphany May 13 '18 at 12:47