liuwenliang的个人博客分享 http://blog.sciencenet.cn/u/liuwenliang

博文

[转载]C#里面比较时间大小三种方法

已有 3776 次阅读 2019-3-3 03:00 |个人分类: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指定的页面


16、char.IsWhiteSpce(字串变量,位数)——逻辑型

查指定位置是否空字符;

如:

string str="中国 人民";

Response.Write(char.IsWhiteSpace(str,2)); //结果为:True, 第一个字符是0位,2是第三个字符。


17、char.IsPunctuation('字符') --逻辑型

查字符是否是标点符号

如:Response.Write(char.IsPunctuation('A')); //返回:False


18、(int)'字符'

把字符转为数字,查代码点,注意是单引号。

如:

Response.Write((int)'中'); //结果为中字的代码:20013


19、(char)代码

把数字转为字符,查代码代表的字符。

如:


转载自:https://www.cnblogs.com/rwh871212/p/6999704.html




https://blog.sciencenet.cn/blog-3409972-1165274.html

上一篇:[转载]IDL+ENVI和C#联调
下一篇:[转载]IDL中的日期和时间函数
收藏 IP: 223.72.58.*| 热度|

0

评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-12-29 07:15

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部