日期:2014-05-18  浏览次数:20812 次

如何比较字符串变量的大小呢,string 类型的变量
如何比较字符串变量的大小呢,string 类型的变量
我想比较 时间的一个字符串
"06:00:00"
"08:00:00"

我要判断一个时间字符串,是不是在 6点和8点之间。

但是字符串变量(string 类型变量,无法比较大小呀)
在sql数据库中,可以方便的比较字符串的大小,但是在c#中如何实现呢?


------解决方案--------------------
如果你确定时间是这种格式,直接用string.Compare就可以

string str1 = "06:00:00";
string str2 = "08:00:00";
string strInput = "07:12:22"
if (string.Compare(strInput, str1) > 0 && string.Compare(strInput, str2) < 0)
{
 ...
}

依据你的要求,判断中的大于号好小于号可能需要换成大于等于和小于等于
------解决方案--------------------
用TimeSpan做比较
C# code

TimeSpan ts1 = TimeSpan.Parse("06:00:00");
TimeSpan ts2 = TimeSpan.Parse("08:00:00");
TimeSpan ts = TimeSpan.Parse("07:00:00");
if(ts>=ts1 && ts<=ts2)
{
    ...
}

------解决方案--------------------
string str1 = "06:00:00";
string str2 = "08:00:00";
string strInput = "07:12:22";
DateTime dt1 = GetDateTime(str1);
DateTime dt2 = GetDateTime(str2);
DateTime dt3 = GetDateTime(strInput);
if (dt3 > dt2)
{
Console.WriteLine(dt3 + "大于" + dt2);
}
else
{
Console.WriteLine(dt3 + "小于等于" + dt2);
}
if (dt3 > dt1)
{
Console.WriteLine(dt3 + "大于" + dt1);
}
else 

Console.WriteLine(dt3 + "小于等于" + dt1);
}
Console.ReadKey();
}

private static DateTime GetDateTime(string str)
{
if(str==null)return default(DateTime);
return DateTime.Parse(str);
}