zoukankan      html  css  js  c++  java
  • 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+="
    "+dt1.ToString();
    
    if(DateTime.Compare(dt1,dt3)>0)
    
    msg.Text+="
    "+st1+">"+dt3.ToString();
    
    else
    
    msg.Text+="
    "+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()+"";
    
    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)代码
    把数字转为字符,查代码代表的字符。
    如:
  • 相关阅读:
    利用TLE数据确定卫星轨道(1)-卫星轨道和TLE
    关于javascript的单线程和异步的一些问题
    javascript编译与运行机理(1)--
    springMVC解决跨域
    如何实现免登陆功能(cookie session?)
    Map 接口有哪些类
    平时使用了哪些线程池
    Maven install报错:MojoFailureException ,To see the full stack trace of the errors, re-run Maven with the -e switch.解决
    记录新建dorado项目更新规则中报错
    Dynamic Web Module 3.0 requires Java 1.6 or newer
  • 原文地址:https://www.cnblogs.com/wenjie0904/p/10070680.html
Copyright © 2011-2022 走看看