关于C#判断时间范围的问题 判断某个时间是否在时间范围内例如08:30 是否在 08:00-20:008:30 是否在 20:00-08:00 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 (new TimeSpan(8,0,0))<DateTime.TimeOfDay<(new TimeSpan(20,0,0)) 先转换成Int32,再用代码逐个判断 string date1 = maskedTextBox1.Text; DateTime d1 = Convert.ToDateTime(date1); if (d1 < dateTimePicker1.MinDate) { MessageBox.Show("请输入在1753-1-1到9998-12-31之间的时间"); label1.Text = ""; maskedTextBox1.Text = ""; return; } else if (d1 > dateTimePicker1.MaxDate) { MessageBox.Show("请输入在1753-1-1到9998-12-31之间的时间"); label1.Text = ""; maskedTextBox1.Text = ""; return; } 也可以用DateTime类型直接判断,但是“8:30 是否在 20:00-08:00”这个要加上完整的日期,再判断 最后用了一个笨拙的办法解决了代码如下public static bool TimeScope(string begintime, string endtime, string timestr) { DateTime date = DateTime.Now; DateTime stime = Convert.ToDateTime(ConvertToDataString(date) + " " + begintime); DateTime etime = Convert.ToDateTime(ConvertToDataString(date) + " " + endtime); DateTime now = Convert.ToDateTime(ConvertToDataString(date) + " " + timestr); decimal start = Convert.ToDecimal(stime.Hour) + Convert.ToDecimal(stime.Minute) / 100; decimal end = Convert.ToDecimal(etime.Hour) + Convert.ToDecimal(etime.Minute) / 100; decimal nowtime = Convert.ToDecimal(now.Hour) + Convert.ToDecimal(now.Minute) / 100; if (end < start) { if (nowtime >= start || nowtime <= end) { return true; } else { return false; } } else { if (nowtime >= start && nowtime <= end) { return true; } else { return false; } } } 用TimeSpan+DateTime结合,很容易实现你的想法:DateTime curr = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 8, 30, 0);//填实际值 DateTime t1 = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 8, 0, 0); DateTime t2 = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 20, 0, 0); TimeSpan span1 = t1.Subtract(curr); TimeSpan span2 = t2.Subtract(curr); if(span1.TotalSeconds<=0 && span2.TotalSeconds>=0) { //落在区间范围 } DateTime dt1 = new DateTime(DateTime.Now.Year, DateTime.Now.Month,DateTime.Now.Day,9,0,0); DateTime dt2 = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 18, 0, 0); TimeSpan ts1 = dt1.Subtract(DateTime.Now); TimeSpan ts2 = dt2.Subtract(DateTime.Now); if (ts1.TotalSeconds < 0 && ts2.TotalSeconds > 1) { Response.Write("OK"); } C#关于dataGridView1的疑惑 数据库image字段保存文字,C#怎么读取文字内容 问题:将一个Excel文件的样式复制到另一个Excel文件中 自定义泛型集合的,要实现添加,删除,修改,foreach遍历? 新手提一些学习C#的方法,过来人给点看法好吗 晕了,《属性的可访问性》高手们帮我解释一下。 C#初级问题,求解,急 请问我做的字库为TTF文件,怎么写C#程序读取字库让字在TEXTBOX控件中显示出来? 求助啊,杀千刀的数据库代码植入。求应对方法。。。 使用npoi 操作excel 保存后没有写入 求救!VS2005编译失败! 定时器每隔一秒触发button!!!
DateTime d1 = Convert.ToDateTime(date1);
if (d1 < dateTimePicker1.MinDate)
{
MessageBox.Show("请输入在1753-1-1到9998-12-31之间的时间");
label1.Text = "";
maskedTextBox1.Text = "";
return;
}
else if (d1 > dateTimePicker1.MaxDate)
{
MessageBox.Show("请输入在1753-1-1到9998-12-31之间的时间");
label1.Text = "";
maskedTextBox1.Text = "";
return;
}
代码如下public static bool TimeScope(string begintime, string endtime, string timestr)
{
DateTime date = DateTime.Now;
DateTime stime = Convert.ToDateTime(ConvertToDataString(date) + " " + begintime);
DateTime etime = Convert.ToDateTime(ConvertToDataString(date) + " " + endtime);
DateTime now = Convert.ToDateTime(ConvertToDataString(date) + " " + timestr); decimal start = Convert.ToDecimal(stime.Hour) + Convert.ToDecimal(stime.Minute) / 100;
decimal end = Convert.ToDecimal(etime.Hour) + Convert.ToDecimal(etime.Minute) / 100;
decimal nowtime = Convert.ToDecimal(now.Hour) + Convert.ToDecimal(now.Minute) / 100; if (end < start)
{
if (nowtime >= start || nowtime <= end)
{
return true;
}
else
{
return false;
}
}
else
{
if (nowtime >= start && nowtime <= end)
{
return true;
}
else
{
return false;
}
} }
DateTime t1 = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 8, 0, 0);
DateTime t2 = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 20, 0, 0); TimeSpan span1 = t1.Subtract(curr);
TimeSpan span2 = t2.Subtract(curr); if(span1.TotalSeconds<=0 && span2.TotalSeconds>=0)
{
//落在区间范围
}
DateTime dt1 = new DateTime(DateTime.Now.Year, DateTime.Now.Month,DateTime.Now.Day,9,0,0);
DateTime dt2 = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 18, 0, 0); TimeSpan ts1 = dt1.Subtract(DateTime.Now);
TimeSpan ts2 = dt2.Subtract(DateTime.Now);
if (ts1.TotalSeconds < 0 && ts2.TotalSeconds > 1)
{
Response.Write("OK");
}