有点笨的办法,不知可行不
DateTime1 DateTime2分别取年,月(假设两个时间为20011-7-1 20:11 ,2008-1-5 20:33)
//取年
string tmp1=DateTime1.tostring("yy");
string tmp2=DateTime2.tostring("yy");
//取月
string m1=DateTime1.tostring("MM");
string m2=DateTime2.tostring("MM");
//数值转换
tmp1=convert.toint32(tmp1);
tmp2=convert.toint32(tmp2);
m1=convert.toint32(m1);
m2=convert.toint32(m2)
//
没问题的应该得出:
tmp1=2007;
tmp2=2008;
m1=11;
m2=1;
年的相差大于0的肯定禁止.月的相差>=2同理
想~如此,lz可试下
DateTime1 DateTime2分别取年,月(假设两个时间为20011-7-1 20:11 ,2008-1-5 20:33)
//取年
string tmp1=DateTime1.tostring("yy");
string tmp2=DateTime2.tostring("yy");
//取月
string m1=DateTime1.tostring("MM");
string m2=DateTime2.tostring("MM");
//数值转换
tmp1=convert.toint32(tmp1);
tmp2=convert.toint32(tmp2);
m1=convert.toint32(m1);
m2=convert.toint32(m2)
//
没问题的应该得出:
tmp1=2007;
tmp2=2008;
m1=11;
m2=1;
年的相差大于0的肯定禁止.月的相差>=2同理
想~如此,lz可试下
if( span.TotalDays > 60 ) {
// ...
}
{
string Temp;
string TempSql = "select LastLogon from ironusers where UserId = '" + UserId + "'";
using (System.Data.Odbc.OdbcDataAdapter da = new System.Data.Odbc.OdbcDataAdapter(TempSql, Conn))
{
DataSet ds = new DataSet();
da.Fill(ds);
Temp = Convert.ToString(ds.Tables[0].Rows[0][0]);
return Temp;
}
}public bool IsLogin()
{ ASIUser a = new ASIUser();
string UserId = this.Request.Form["username"].ToString();
string UserPwd = this.Request.Form["password1"].ToString(); string b = a.Login(UserId, UserPwd);
string StrLastLoginTime = Convert.ToDateTime(b).ToString("MM-dd-yyyy hh-mm-ss");
string LastYear = StrLastLoginTime.Substring(6, 4);
string LastMonth = StrLastLoginTime.Substring(0, 2);
string LastDay = StrLastLoginTime.Substring(3, 2);
string StrLocalSystemTime = Convert.ToDateTime(DateTime.Now).ToString("MM-dd-yyyy hh-mm-ss");
string LocalYear = StrLocalSystemTime.Substring(6, 4);
string LocalMonth = StrLocalSystemTime.Substring(0, 2);
string LocalDay = StrLocalSystemTime.Substring(3, 2);
if (Convert.ToInt32(LocalYear) - Convert.ToInt32(LastYear) == 0)
{
if (Convert.ToInt32(LocalMonth) - Convert.ToInt32(LastMonth) > 2)
{
return false;
}
else
{
return true;
}
}
else
{
if (Convert.ToInt32(LocalYear) - Convert.ToInt32(LastYear) == 1 && Convert.ToInt32(LocalYear) - Convert.ToInt32(LastYear) > 1 && Convert.ToInt32(LocalMonth) - Convert.ToInt32(LastMonth) > -2)
{
return false;
}
else
{
return true;
} }
}
本人这样写的 是最苯的办法
DateTime有三个属性 Year,Month,Day
(dt1.Year-dt2.Year)*365+(dt1.Month-dt2.Month)*30+(dt1.Day-dt2.Day)>60
......
还有 span.TotalDays > 60 你觉得有可能成立吗?===========为何不会成立,那么你说下面这个结果是多少? DateTime dt1 = DateTime.Parse("2007-6-1");
DateTime dt2 = DateTime.Parse("2007-8-1");
TimeSpan span = dt2 - dt1;
double d = span.TotalDays; // 若按公历表示,难道不是 61 ?????当然,经得岂测试的代码应该是
if(Math.Abs(span.TotalDays) > 60) { // ....
==================要学会实践,要学会看文档,TimeSpan
表示一个时间间隔。TimeSpan.TotalDays
获取以整天数和天的小数部分表示的当前 TimeSpan 结构的值。 ....
DateTime dt2 = Convert.ToDateTime("2007-8-1");
TimeSpan ts = dt2 - dt1;
Console.Write(ts.Days);
Console.ReadKey();结果是61,不知道楼主怎么会说>60会不成立。
不知道楼主为何说不对
讲清楚嚒
DateTime dt2 = Convert.ToDateTime("2007-8-1");
TimeSpan ts = dt2 - dt1
是正确的我今上午刚用过的