C#如何实现时间比较问题
我是C#新手,获取当前时间DataTime.Now,然后提取access数据库里面一个长日期(2009-7-234:06:58)形式的时间,用if(当前时间>=数据库里面...
我是C#新手,获取当前时间DataTime.Now ,然后提取access数据库里面一个长日期(2009-7-23 4:06:58)形式的时间,用if(当前时间>=数据库里面那个时间) 然后做我想做的事情。(就是现在时间超过或者等于过去保存的那个时间,我就可以操作其他内容了) 问题就是括号里面的两个时间比较老是出错,说是两个string类型无法比较,改了之后又有新的错误提示,到底要怎样实现两个比较?
access数据库的那个时间我是用 OleDbDataReader dr = cmd.ExecuteReader();
dr.Read();
string str1 = dr["到期时间"].ToString(); 提取出来的(前面几句我就不行了)!
当前时间是 string strNow=DateTime.Now.toString();
就是这两个时间的比较!
大侠们帮帮忙,我是菜鸟,要有详细的代码,不要简单的几句提示!谢谢啦! 展开
access数据库的那个时间我是用 OleDbDataReader dr = cmd.ExecuteReader();
dr.Read();
string str1 = dr["到期时间"].ToString(); 提取出来的(前面几句我就不行了)!
当前时间是 string strNow=DateTime.Now.toString();
就是这两个时间的比较!
大侠们帮帮忙,我是菜鸟,要有详细的代码,不要简单的几句提示!谢谢啦! 展开
4个回答
展开全部
C#时间比较大小卜胡方法一:时间与时间之间直接比较。
stringstrTime1=DateTime.Now.ToString(); stringstrTime2=DateTime.Now.AddDays(-1).ToString(); DateTimedt1=Convert.ToDateTime(strTime1); DateTimedt2=Convert.ToDateTime(strTime2); if(dt1>dt2) { ……其他操作 }
C#时间比较大小方法二:使用CompareTo方法,实现时间与时间蔽弊敬之间的比较。
stringstrTime1=DateTime.Now.ToString(); stringstrTime2=DateTime.Now.AddDays(-1).ToString(); DateTimedt1=Convert.ToDateTime(strTime1); DateTimedt2=Convert.ToDateTime(strTime2); intn=dt1.CompareTo(dt2); if(n>0) { ……其他操作 }
两种C#时间比较大小的方法就介绍到这里。
【编辑推荐】
C#接口宏慎和抽象类技术特点浅析
C#继承知识详解
一个C#时间计算的实例
C#日期格式化的几种处理方法
代码详解C#比较时间的三种方法
stringstrTime1=DateTime.Now.ToString(); stringstrTime2=DateTime.Now.AddDays(-1).ToString(); DateTimedt1=Convert.ToDateTime(strTime1); DateTimedt2=Convert.ToDateTime(strTime2); if(dt1>dt2) { ……其他操作 }
C#时间比较大小方法二:使用CompareTo方法,实现时间与时间蔽弊敬之间的比较。
stringstrTime1=DateTime.Now.ToString(); stringstrTime2=DateTime.Now.AddDays(-1).ToString(); DateTimedt1=Convert.ToDateTime(strTime1); DateTimedt2=Convert.ToDateTime(strTime2); intn=dt1.CompareTo(dt2); if(n>0) { ……其他操作 }
两种C#时间比较大小的方法就介绍到这里。
【编辑推荐】
C#接口宏慎和抽象类技术特点浅析
C#继承知识详解
一个C#时间计算的实例
C#日期格式化的几种处理方法
代码详解C#比较时间的三种方法
展开全部
我们和渗面对的是同样的问题,同样是菜鸟,同样被日期型数据所困,不过我的问题基本解决了,方法就是不断地试验,说不上哪次就是对的。虽然说不要思路吧,但是希望下面的对你有用。
string strDate = "2008-9-11"; // 要比较的日期字符串
DateTime time1 = dateTimePicker.Value; // DateTimePicker 控件中的值,本身已经是 DateTime 型的变量了
DateTime time2 = DateTime.Parse(strDate); // 把日期字符串解析为 DateTime 型的变量
if (time1 < time2) // DateTime 型的变量是可以直接比较的
{
// dateTimePicker.Value 比 strDate 的日期早
}
else if (time1 == time2)
{
// 两个时间相同
}
else
{
// 否则,就是更迟
}
若两个都是时间格式的时候:
TimeSpan rq = (this.dateTimePicker1.Value - DateTime.Now.Date);
if (rq.TotalDays> 1)
{
MessageBox.Show("开始日期不能早于当前日期");
}
else if (rq.TotalDays<1)
{
MessageBox.Show("可用");
}
若只想取日期部分,而不取时分秒部分,那么:洞此
将上面的改成:
第一句改成:TimeSpan rq = (this.dateTimePicker1.Value.Date - DateTime.Now.Date);//表示两个时间都只取日期部分
用rq.TotalDays跟0比较
两个都是字符串的话:
string strDate1 = "2008-9-20"; // 要比较的日期字符串1
string strDate2 = "2008-10-12"; // 要比较的日期字符串2
if (DateTime.Parse(strDate1) < DateTime.Parse(strDate2)) // DateTime 型的变量是可以直接比较大小的
{
// strDate1 比 strDate2 的日期早
}
else
{
/唤颤脊/ 否则,就是相等或更迟
}
两个都是DateTimePicker控件的话更简单:
if (dateTimePicker1.Value < dateTimePicker2.Value)
{
// dateTimePicker1 代表的日期更早
}
我做的时间比较 就是直接用字符串比较的,不是长日期而已,可以,在sql语句中比较的用to_char(RQ,'yyyy-mm-dd')和一个日期的字符串比较(当然也是yyyy-mm-dd格式的),祝你好运!
string strDate = "2008-9-11"; // 要比较的日期字符串
DateTime time1 = dateTimePicker.Value; // DateTimePicker 控件中的值,本身已经是 DateTime 型的变量了
DateTime time2 = DateTime.Parse(strDate); // 把日期字符串解析为 DateTime 型的变量
if (time1 < time2) // DateTime 型的变量是可以直接比较的
{
// dateTimePicker.Value 比 strDate 的日期早
}
else if (time1 == time2)
{
// 两个时间相同
}
else
{
// 否则,就是更迟
}
若两个都是时间格式的时候:
TimeSpan rq = (this.dateTimePicker1.Value - DateTime.Now.Date);
if (rq.TotalDays> 1)
{
MessageBox.Show("开始日期不能早于当前日期");
}
else if (rq.TotalDays<1)
{
MessageBox.Show("可用");
}
若只想取日期部分,而不取时分秒部分,那么:洞此
将上面的改成:
第一句改成:TimeSpan rq = (this.dateTimePicker1.Value.Date - DateTime.Now.Date);//表示两个时间都只取日期部分
用rq.TotalDays跟0比较
两个都是字符串的话:
string strDate1 = "2008-9-20"; // 要比较的日期字符串1
string strDate2 = "2008-10-12"; // 要比较的日期字符串2
if (DateTime.Parse(strDate1) < DateTime.Parse(strDate2)) // DateTime 型的变量是可以直接比较大小的
{
// strDate1 比 strDate2 的日期早
}
else
{
/唤颤脊/ 否则,就是相等或更迟
}
两个都是DateTimePicker控件的话更简单:
if (dateTimePicker1.Value < dateTimePicker2.Value)
{
// dateTimePicker1 代表的日期更早
}
我做的时间比较 就是直接用字符串比较的,不是长日期而已,可以,在sql语句中比较的用to_char(RQ,'yyyy-mm-dd')和一个日期的字符串比较(当然也是yyyy-mm-dd格式的),祝你好运!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
干嘛都转成态好String类型呢,帆辩铅转成DateTime类型比较呀。
看看下面的代码,不过你的日期格式是什么样子的,只灶敏要是正确的,那么他们就是相等的。
string date1 = "2009-7-22 4:3:45";
string date2 = "2009-07-22 4:03:45";
string date3 = "2009年7月22日 4时3分45秒";
string date4 = "2009年07月22日 4时03分45秒";
DateTime d1 = Convert.ToDateTime(date1);
DateTime d2 = Convert.ToDateTime(date2);
DateTime d3 = Convert.ToDateTime(date3);
DateTime d4 = Convert.ToDateTime(date4);
Console.WriteLine(d1 == d2);
Console.WriteLine(d1 == d3);
Console.WriteLine(d1 == d4);
输出结果是3个True。
还有既然数据库里面的字段是日期格式,那么就可以直接转成DateTime类型。
DateTime date1= (DateTime)dr["到期时间"];
这样写是完全没有问题的,你还可以用Convert.ToDateTime()这个方法转。
看看下面的代码,不过你的日期格式是什么样子的,只灶敏要是正确的,那么他们就是相等的。
string date1 = "2009-7-22 4:3:45";
string date2 = "2009-07-22 4:03:45";
string date3 = "2009年7月22日 4时3分45秒";
string date4 = "2009年07月22日 4时03分45秒";
DateTime d1 = Convert.ToDateTime(date1);
DateTime d2 = Convert.ToDateTime(date2);
DateTime d3 = Convert.ToDateTime(date3);
DateTime d4 = Convert.ToDateTime(date4);
Console.WriteLine(d1 == d2);
Console.WriteLine(d1 == d3);
Console.WriteLine(d1 == d4);
输出结果是3个True。
还有既然数据库里面的字段是日期格式,那么就可以直接转成DateTime类型。
DateTime date1= (DateTime)dr["到期时间"];
这样写是完全没有问题的,你还可以用Convert.ToDateTime()这个方法转。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我没弄过,我说下我思路
比较的话就不能比较字符串了
从数据库里抽出来的日期是字符串,2009-7-23 4:06:58像这个拆码渣,如果你只是比较到日而已 的话,可以把小时那边的字符串去掉,剩下2009-7-23,然后用这个字符串new一模团个DataTime出来,DataTime应该会有这个构造函数,然后再用里面的方法比较,我没试过,你旅悄自己试试
第二个方法就是比较字符串啦
把年月日的字符都分出来分别赋给int类型的变量,然后再比较
2009-7-23就以"-"符号来分割他们
比较的话就不能比较字符串了
从数据库里抽出来的日期是字符串,2009-7-23 4:06:58像这个拆码渣,如果你只是比较到日而已 的话,可以把小时那边的字符串去掉,剩下2009-7-23,然后用这个字符串new一模团个DataTime出来,DataTime应该会有这个构造函数,然后再用里面的方法比较,我没试过,你旅悄自己试试
第二个方法就是比较字符串啦
把年月日的字符都分出来分别赋给int类型的变量,然后再比较
2009-7-23就以"-"符号来分割他们
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询