C# 代码计算两个日期之间的天数...我在一个文本框中有开始日期,在另一个文本框中有结束日期,我需要得到没有。两个日期之间的天数,并显示在第三个文本框中,它应该不包括假期和周末(周六和周日)。
问问题
8200 次
4 回答
3
您可以将文本框日期解析为日期时间对象,然后尝试以下几行。
DateTime startDate = new DateTime(2013, 03, 01);
DateTime endDate = DateTime.Today; // 12 March 2013
int totalDays = 0;
while (startDate <= endDate)
{
if (startDate.DayOfWeek == DayOfWeek.Saturday
|| startDate.DayOfWeek == DayOfWeek.Sunday)
{
startDate = startDate.AddDays(1);
continue;
}
startDate = startDate.AddDays(1);
totalDays++;
}
Console.WriteLine("Total days excluding weekends: {0}", totalDays);
于 2013-03-12T07:10:43.957 回答
2
var dateDiff = FirstDate - SecondDate;
double totalDays = dateDiff.TotalDays;
于 2013-03-12T07:21:14.483 回答
1
如果您在文本框中有两个日期,即 textBox1 和 textBox2
DateTime date1= new DateTime();
DateTime date2 = new DateTime();
double days;
bool isDate1Valid =DateTime.TryParse(textBox1.Text, out date1);
bool isDate2Valid =DateTime.TryParse(textBox2.Text, out date2);
if(isDate1Valid && isDate2Valid)
days = (date1-date2).TotalDays;
编辑
如果您需要在不循环的情况下执行此操作,以下是如何执行此操作。.
如果日期差异太大,循环可能会消耗一些额外的时间。
于 2013-03-12T07:23:58.783 回答
1
尝试这个..
DateTime startdate = DateTime.Parse("somedate");
DateTime enddate = DateTime.Parse("somedate");
int daycount = 0;
while (startdate < enddate)
{
startdate = startdate.AddDays(1); // Fixed
int DayNumInWeek = (int)startdate.DayOfWeek;
if (DayNumInWeek != 0)
{
if (DayNumInWeek != 6)
{ daycount += 1; }
}
}
于 2013-03-12T07:35:54.140 回答