D Dino Medlem sedan sep. 2001 1 914 inlägg Frågan 27 okt. 2007 10:49 #1 Nedan kod är tänkt att lägga på X antal arbetsdagar(måndag-fredag) på ett datum för att sen retunera det nya datumet. Men det vill sig inte.
public static DateTime AddBusinessDays(DateTime startdate, int days)
{
while (days > 0)
{
startdate = startdate.AddDays(1d);
if (startdate.DayOfWeek != DayOfWeek.Saturday || startdate.DayOfWeek != DayOfWeek.Sunday)
days--;
}
return startdate;
}
Response.Write("+1: " + AddBusinessDays(DateTime.Now, 1).ToShortDateString() + "<br/>");
Response.Write("+2: " + AddBusinessDays(DateTime.Now, 2).ToShortDateString() + "<br/>");
Response.Write("+3: " + AddBusinessDays(DateTime.Now, 3).ToShortDateString() + "<br/>");
Response.Write("+4: " + AddBusinessDays(DateTime.Now, 4).ToShortDateString() + "<br/>");
Response.Write("+5: " + AddBusinessDays(DateTime.Now, 5).ToShortDateString() + "<br/>");
Response.Write("+6: " + AddBusinessDays(DateTime.Now, 6).ToShortDateString() + "<br/>");
Response.Write("+7: " + AddBusinessDays(DateTime.Now, 7).ToShortDateString() + "<br/>");
Response.Write("+8: " + AddBusinessDays(DateTime.Now, 8).ToShortDateString() + "<br/>");
Response.Write("+9: " + AddBusinessDays(DateTime.Now, 9).ToShortDateString() + "<br/>");
Response.Write("+10: " + AddBusinessDays(DateTime.Now, 10).ToShortDateString() + "<br/>");
Response.Write("+11: " + AddBusinessDays(DateTime.Now, 11).ToShortDateString() + "<br/>");
Response.Write("+12: " + AddBusinessDays(DateTime.Now, 12).ToShortDateString() + "<br/>");
G Gladh Medlem sedan maj 2001 2 812 inlägg if (startdate.DayOfWeek != DayOfWeek.Saturday || startdate.DayOfWeek != DayOfWeek.Sunday
Du säger här om dagen är skilt från söndag eller dagen är skilt från lördag, vilket alltid kommer att vara sant. För om dagen är en lördag så är den skilt från söndag och vilkoret är sant.
Du får antingen kontrollera om dagen är en Måndag ELLER Tisdag ELLER Onsdag ELLER Torsdag ELLER Fredag Så fall minskar du days med ett.
Eller så vänder du på uttrycket.
Kontrollera om dagen är en Lördag ELLER Söndag och ta INVERTEN på resultatet
if(!(startdate.DayofWeek == DayOfWeek.Saturday || startdate.DayofWeek == DayOfWeek.Sunday))
days--;
- M
D Dino Medlem sedan sep. 2001 1 914 inlägg Det gjorde susen. Tackar. :)