可以先取两个日期所在周的星期天的日期。
然后再比较两个星期日之间相隔天数。
然后用天数/7取整。得到便是这两个日期之间的星期天数。
假如日期t1,t2
DateTime t1=DateTime.Parse("2007-8-12");
DateTime t2=DateTime.Parse("2007-9-26");
DateTime dt1;
DateTime dt2;
if(Convert.ToInt32(t1.DayOfWeek)==0)
{
dt1=t1;
}
else
{
dt1= t1.AddDays(Convert.ToDouble((7 - Convert.ToInt32(t1.DayOfWeek))));//t1所在周的星期天
}
if(Convert.ToInt32(t2.DayOfWeek)==0)
{
dt2=t2;
}
else
{
dt2= t2.AddDays(Convert.ToDouble((7 - Convert.ToInt32(t2.DayOfWeek))));//t2所在周的星期天
}
TimeSpan a=dt2.Subtract(dt1);
int n=Convert.ToInt32(a.TotalDays)/7;
n即为所求。。
然后再比较两个星期日之间相隔天数。
然后用天数/7取整。得到便是这两个日期之间的星期天数。
假如日期t1,t2
DateTime t1=DateTime.Parse("2007-8-12");
DateTime t2=DateTime.Parse("2007-9-26");
DateTime dt1;
DateTime dt2;
if(Convert.ToInt32(t1.DayOfWeek)==0)
{
dt1=t1;
}
else
{
dt1= t1.AddDays(Convert.ToDouble((7 - Convert.ToInt32(t1.DayOfWeek))));//t1所在周的星期天
}
if(Convert.ToInt32(t2.DayOfWeek)==0)
{
dt2=t2;
}
else
{
dt2= t2.AddDays(Convert.ToDouble((7 - Convert.ToInt32(t2.DayOfWeek))));//t2所在周的星期天
}
TimeSpan a=dt2.Subtract(dt1);
int n=Convert.ToInt32(a.TotalDays)/7;
n即为所求。。
解决方案 »
- 系统中怎样获取用户进行了哪些操作的信息
- 求个正则表达式
- 新人弱问:自定义了一个组件,不能引用,咋回事儿?
- 今天开始研究freetextbox的源码,打开freetextbox.cs文件一看,发现第一行开始就看不懂,我真是无知啊……只有请教
- 如何取得当前datagrid中第一行第二列的值?
- textbox在Page_Load赋值之后update不能修改的问题。帮帮忙.
- 如何通过超级链接连接到自身这一页,并根据参数显示不同的显示界面???
- group by 的问题,用它时必须也用聚集函数吗?
- 使用存储过程填充gridview,存储过程出错的问题
- HiJava(),请进来拿分,要有冒犯的地方多担待啊
- 有关INFORMATION_SCHEMA.KEY_COLUMN_USAGE的一个问题?
- SqlDataReader
TimeSpan ts = new TimeSpan();
ts = Calendar2.SelectedDate - Calendar1.SelectedDate;
int days = ts.Days;
txtDays.Text = days.ToString(); //存在几个星期天
int weekday1 = Convert.ToInt32(Calendar1.SelectedDate.DayOfWeek); //0代表星期天 开始的那天是星期几
int weekday2 = Convert.ToInt32(Calendar2.SelectedDate.DayOfWeek); //0代表星期天 结束的那天是星期几 int weekend = days / 7; //至少有几个星期天,整除
int mod = days % 7; //多余的几天 余数
if ((mod + weekday1) > 7 || (weekday1 > weekday2))
{
weekend = weekend + 1;
}
txtCSunday.Text = weekend.ToString();
txtCSunday为一个Textbox 输出2个日期中有几个星期天程序通过测试.