C#裏面比較時間大小三種方法

DateTime   t1   =   new   DateTime(100);   
  DateTime   t2   =   new   DateTime(20);   
    
  if   (DateTime.Compare(t1,   t2)   >     0)   Console.WriteLine("t1   >   t2");     
  if   (DateTime.Compare(t1,   t2)   ==   0)   Console.WriteLine("t1   ==   t2");     
  if   (DateTime.Compare(t1,   t2)   <     0)   Console.WriteLine("t1   <   t2");   
 

 

 

1。比較時間大小的實驗

string st1="12:13";

string st2="14:14";

DateTime dt1=Convert.ToDateTime(st1);

DateTime dt2=Convert.ToDateTime(st2);

DateTime dt3=DateTime.Now;

if(DateTime.Compare(dt1,dt2)>0)

msg.Text=st1+">"+st2;

else

msg.Text=st1+"<"+st2;

msg.Text+="\r\n"+dt1.ToString();

if(DateTime.Compare(dt1,dt3)>0)

msg.Text+="\r\n"+st1+">"+dt3.ToString();

else

msg.Text+="\r\n"+st1+"<"+dt3.ToString();

2。計算兩個時間差值的函數,返回時間差的絕對值:

private string DateDiff(DateTime DateTime1,DateTime DateTime2)

{

string dateDiff=null;

try

{

TimeSpan ts1=new TimeSpan(DateTime1.Ticks);

TimeSpan ts2=new TimeSpan(DateTime2.Ticks);

TimeSpan ts=ts1.Subtract(ts2).Duration();

dateDiff=ts.Days.ToString()+""

+ts.Hours.ToString()+"小時"

+ts.Minutes.ToString()+"分鐘"

+ts.Seconds.ToString()+"";

}

catch

{

}

return dateDiff;

}

3。實現計算DateTime1-36天=DateTime2的功能

TimeSpan ts=new TimeSpan(40,0,0,0);

DateTime dt2=DateTime.Now.Subtract(ts);

msg.Text=DateTime.Now.ToString()+"-"+ts.Days.ToString()+"天\r\n";

msg.Text+=dt2.ToString();

 

 

use "DateTime.Compare" static method
DateTime.Compare( dt1, dt2 ) > 0 : dt1 > dt2
DateTime.Compare( dt1, dt2 ) == 0 : dt1 == dt2
DateTime.Compare( dt1, dt2 ) < 0 : dt1 < dt2
        /// <summary>
         /// 計算兩個日期的時間間隔
         /// </summary>
         /// <param name="DateTime1">第一個日期和時間</param>
         /// <param name="DateTime2">第二個日期和時間</param>
         /// <returns></returns>
         private string DateDiff(DateTime DateTime1, DateTime DateTime2)
         {
             string dateDiff = null;
           
             TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
             TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
             TimeSpan ts = ts1.Subtract(ts2).Duration();
             dateDiff = ts.Days.ToString()+""
                 + ts.Hours.ToString()+"小時"
                 + ts.Minutes.ToString()+"分鐘"
                 + ts.Seconds.ToString()+"";
           
             return dateDiff;
         } 說明:
1.DateTime值類型表明了一個從公元0001年1月1日0點0分0秒到公元9999年12月31日23點59分59秒之間的具體日期時刻。所以,你能夠用DateTime值類型來描述任何在想象範圍以內的時間。一個DateTime值表明了一個具體的時刻
2.TimeSpan值包含了許多屬性與方法,用於訪問或處理一個TimeSpan值
下面的列表涵蓋了其中的一部分:
Add:與另外一個TimeSpan值相加。
Days:返回用天數計算的TimeSpan值。
Duration:獲取TimeSpan的絕對值。
Hours:返回用小時計算的TimeSpan值
Milliseconds:返回用毫秒計算的TimeSpan值。
Minutes:返回用分鐘計算的TimeSpan值。
Negate:返回當前實例的相反數。
Seconds:返回用秒計算的TimeSpan值。
Subtract:從中減去另外一個TimeSpan值。
Ticks:返回TimeSpan值的tick數。
TotalDays:返回TimeSpan值表示的天數。
TotalHours:返回TimeSpan值表示的小時數。
TotalMilliseconds:返回TimeSpan值表示的毫秒數。
TotalMinutes:返回TimeSpan值表示的分鐘數。
TotalSeconds:返回TimeSpan值表示的秒數。

====================================================<BR>int jg=72;//設置一個增長的時間
    DateTime dt=Convert.ToDateTime("2006-4-23 12:22:05");// 設置一個初始化的時間
    DateTime newdt=dt.AddHours(jg);//初始化時間加上增長的時間
    DateTime nowt=DateTime.Now;//如今的時間
    Response.Write("如今時間是:"+nowt+"<br>");
    Response.Write("數據庫時間是:"+dt+"<br>");
    Response.Write("新的時間是:"+newdt+"<br>");
    if(newdt<nowt)//若是相加後的時間大於如今的時間
    {
     Response.Write("能夠");
    }
    else//不然
    {
     Response.Write("不行");
    }

======================================================
// 獲得某年某月的天數
   public static int GetDaysInMonth(int rYear,int rMonth)
   {
    DateTime dt1 = DateTime.Parse(rYear+"-"+rMonth+"-01");
    DateTime dt2 = dt1.AddMonths(1);
    TimeSpan ts = dt2-dt1;
    return (int)ts.TotalDays;
   }

//獲得星期Text
   public static string GetDayOfWeekHtml(int rDayOfWeek)
   {
    switch(rDayOfWeek)
    {
     case (int)DayOfWeek.Sunday:
      return "<font color=\"#ff0000\">星期日</font>";
     case (int)DayOfWeek.Monday:
      return "<font color=\"#000000\">星期一</font>";
     case (int)DayOfWeek.Tuesday:
      return "<font color=\"#000000\">星期二</font>";
     case (int)DayOfWeek.Wednesday:
      return "<font color=\"#000000\">星期三</font>";
     case (int)DayOfWeek.Thursday:
      return "<font color=\"#000000\">星期四</font>";
     case (int)DayOfWeek.Friday:
      return "<font color=\"#000000\">星期五</font>";
     case (int)DayOfWeek.Saturday:
      return "<font color=\"#008800\">星期六</font>";
     default:
      return "";
    }
   }

//   獲得某年某月的起止日期,格式爲0000-00-00
   public static string[] GetBeginEndDate(int rYear,int rMonth)
   {
    string[] arr = new string[2];
    DateTime dt1 = DateTime.Parse(rYear+"-"+rMonth+"-01");
    arr[0] = dt1.ToLongDateString();
    DateTime dt2 = dt1.AddMonths(1).AddDays(-1);
    arr[1] = dt2.ToLongDateString();
    return arr;
   }

==========================
在ASP中日期比較使用:DateDiff( "d", "2006-1-30", now )>0;在C#中使用:TimeSpan

代碼以下:
using System;
using System.Collections;

public class DatediffClass
{
public static void Main()
{
   DateTime dt1 = DateTime.Parse("2006-04-01");
   DateTime dt2 = DateTime.Parse("2006-05-01");

   TimeSpan ts = dt2.Subtract(dt1);
   Console.WriteLine(ts.TotalDays);
   Console.ReadLine();
}

}

若是是比較大小:DateTime.Compare(t1, t2) >   0

===================================
1、DateTime 數字型
System.DateTime currentTime=new System.DateTime();
1.1 取當前年月日時分秒
currentTime=System.DateTime.Now;
1.2 取當前年
int 年=currentTime.Year;
1.3 取當前月
int 月=currentTime.Month;
1.4 取當前日
int 日=currentTime.Day;
1.5 取當前時
int 時=currentTime.Hour;
1.6 取當前分
int 分=currentTime.Minute;
1.7 取當前秒
int 秒=currentTime.Second;
1.8 取當前毫秒
int 毫秒=currentTime.Millisecond;
(變量可用中文)
2、Int32.Parse(變量) Int32.Parse("常量")
字符型轉換 轉爲32位數字型

3、 變量.ToString()
字符型轉換 轉爲字符串
12345.ToString("n"); //生成 12,345.00
12345.ToString("C"); //生成 ¥12,345.00
12345.ToString("e"); //生成 1.234500e+004
12345.ToString("f4"); //生成 12345.0000
12345.ToString("x"); //生成 3039 (16進制)
12345.ToString("p"); //生成 1,234,500.00%


4、變量.Length 數字型
取字串長度:
如: string str="中國";
int Len = str.Length ; //Len是自定義變量, str是求測的字串的變量名

5、System.Text.Encoding.Default.GetBytes(變量)
字碼轉換 轉爲比特碼
如:byte[] bytStr = System.Text.Encoding.Default.GetBytes(str);
而後可獲得比特長度:
len = bytStr.Length;

6、System.Text.StringBuilder("")
字符串相加,(+號是否是也同樣?)
如:System.Text.StringBuilder sb = new System.Text.StringBuilder("");
sb.Append("中華");
sb.Append("人民");
sb.Append("共和國");

7、變量.Substring(參數1,參數2);
截取字串的一部分,參數1爲左起始位數,參數2爲截取幾位。
如:string s1 = str.Substring(0,2);

8、String user_IP=Request.ServerVariables["REMOTE_ADDR"].ToString();
取遠程用戶IP地址

9、穿過代理服務器取遠程用戶真實IP地址:
if(Request.ServerVariables["HTTP_VIA"]!=null){
string user_IP=Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
}else{
string user_IP=Request.ServerVariables["REMOTE_ADDR"].ToString();
}

10、 Session["變量"];
存取Session值;
如,賦值: Session["username"]="小布什";

取值: Object objName=Session["username"];
String strName=objName.ToString();
清空: Session.RemoveAll();

11、String str=Request.QueryString["變量"];
用超連接傳送變量。
如在任一頁中建超連接:<a href=Edit.aspx?fbid=23>點擊</a>
在Edit.aspx頁中取值:String str=Request.QueryString["fdid"];

12、DOC對象.CreateElement("新建節點名");
建立XML文檔新節點

13、父節點.AppendChild(子節點);
將新建的子節點加到XML文檔父節點下

14、 父節點.RemoveChild(節點);
刪除節點

15、Response
Response.Write("字串");
Response.Write(變量);
向頁面輸出。

Response.Redirect("URL地址");
跳轉到URL指定的頁面

16char.IsWhiteSpce(字串變量,位數)——邏輯型
查指定位置是否空字符;
如:
string str="中國 人民";
Response.Write(char.IsWhiteSpace(str,2)); //結果爲:True, 第一個字符是0位,2是第三個字符。

17char.IsPunctuation('字符') --邏輯型
查字符是不是標點符號
如:Response.Write(char.IsPunctuation('A')); //返回:False

18、(int)'字符'
把字符轉爲數字,查代碼點,注意是單引號。
如:
Response.Write((int)''); //結果爲中字的代碼:20013

19、(char)代碼
把數字轉爲字符,查代碼表明的字符。
如:
相關文章
相關標籤/搜索