.net常用的小函数和方法集,计算两个日期的时间间隔

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;

(变量可用中文)

1.9 取中文日期显示——年月日时分

string strY=currentTime.ToString("f"); //不显示秒

1.10 取中文日期显示_年月

string strYM=currentTime.ToString("y");

1.11 取中文日期显示_月日

string strMD=currentTime.ToString("m");

1.12 取中文年月日

string strYMD=currentTime.ToString("D");

1.13 取当前时分,格式为:14:24

string strT=currentTime.ToString("t");

1.14 取当前时间,格式为:2003-09-23T14:46:48

string strT=currentTime.ToString("s");

1.15 取当前时间,格式为:2003-09-23 14:48:30Z

string strT=currentTime.ToString("u");

1.16 取当前时间,格式为:2003-09-23 14:48

string strT=currentTime.ToString("g");

1.17 取当前时间,格式为:Tue, 23 Sep 2003 14:52:40 GMT

string strT=currentTime.ToString("r");

1.18获得当前时间 n 天后的日期时间

DateTime newDay = DateTime.Now.AddDays(100);

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)代码

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

如:

Response.Write((char)22269); //返回“国”字。

20、 Trim()

清除字串前后空格

21 、字串变量.Replace("子字串","替换为")

字串替换

如:

string str="中国";

str=str.Replace("国","央"); //将国字换为央字

Response.Write(str); //输出结果为“中央”

再如:(这个非常实用)

string str="这是<script>脚本";

str=str.Replace("<","<font><</font>"); //将左尖括号替换为<font> 与 < 与 </font> (或换为<,但估计经XML存诸后,再提出仍会还原)

Response.Write(str); //显示为:“这是<script>脚本”

如果不替换,<script>将不显示,如果是一段脚本,将运行;而替换后,脚本将不运行。

这段代码的价值在于:你可以让一个文本中的所有HTML标签失效,全部显示出来,保护你的具有交互性的站点。

具体实现:将你的表单提交按钮脚本加上下面代码:

string strSubmit=label1.Text; //label1是你让用户提交数据的控件ID。

strSubmit=strSubmit.Replace("<","<font><</font>");

然后保存或输出strSubmit。

用此方法还可以简单实现UBB代码。

22、Math.Max(i,j)

取i与j中的最大值

如 int x=Math.Max(5,10); // x将取值 10

23、字串对比一般都用: if(str1==str2){ } , 但还有别的方法:

(1)、

string str1; str2

//语法: str1.EndsWith(str2); __检测字串str1是否以字串str2结尾,返回布尔值.如:

if(str1.EndsWith(str2)){ Response.Write("字串str1是以"+str2+"结束的"); }

(2)、

//语法:str1.Equals(str2); __检测字串str1是否与字串str2相等,返回布尔值,用法同上.

(3)、

//语法 Equals(str1,str2); __检测字串str1是否与字串str2相等,返回布尔值,用法同上.

24、IndexOf() 、LastIndexOf()

查找字串中指定字符或字串首次(最后一次)出现的位置,返回索引值,如:

str1.IndexOf("字"); //查找“字”在str1中的索引值(位置)

str1.IndexOf("字串");//查找“字串”的第一个字符在str1中的索引值(位置)

str1.IndexOf("字串",3,2);//从str1第4个字符起,查找2个字符,查找“字串”的第一个字符在str1中的索引值(位置)

25、Insert()

在字串中指定索引位插入指定字符。如:

str1.Insert(1,"字");在str1的第二个字符处插入“字”,如果str1="中国",插入后为“中字国”;

26、PadLeft()、PadRight()

在字串左(或右)加空格或指定char字符,使字串达到指定长度,如:

<%

string str1="中国人";

str1=str1.PadLeft(10,'1'); //无第二参数为加空格

Response.Write(str1); //结果为“1111111中国人” , 字串长为10

%>

27、Remove()

从指定位置开始删除指定数的字符

<%

string str1="我是萨达姆的崇拜者之一";

Response.Write(str1.Remove(5,4)); //结果为“我是萨达姆之一”

%>


把字符串转化为字节流

  byte[] bwrite=Encoding.GetEncoding("GB2312").GetBytes("中国1234".ToCharArray());

  MessageBox.Show(bwrite.Length.ToString());

  for(int i=0;i<bwrite.Length;i++)MessageBox.Show(bwrite[i].ToString());

把字符串写入文件

  FileStream fs1=new FileStream(".\\test.dll",FileMode.OpenOrCreate);

  byte[] ch=Encoding.Default.GetBytes(" 我爱北京天安门!\r\n".ToCharArray());

  fs1.Write(ch,0,ch.Length); fs1.Close();      

把字节流转化为字符串

      string str;      

      byte[] bStr=new byte[3]{48+7,48+8,48+9};      

      str=Encoding.Default.GetString(bStr);

      MessageBox.Show(str);

字符串转化为其base64编码

      string s="cuidexuan";

      byte[] by=Encoding.Default.GetBytes(s.ToCharArray());

      s=Convert.ToBase64String(by);            

      MessageBox.Show(s);      

有关文件名的处理

      string s=Path.GetTempPath();

线程

ms-help://MS.VSCC/MS.MSDNVS.2052/cpguide/html/cpconthreading.htm

and

ms-help://MS.VSCC/MS.MSDNVS.2052/cpsamples/html/threading.htm

选择一个目录

public class FolderBrowser : System.Windows.Forms.Design.FolderNameEditor

{

 public string ShowDialog()

 {

  FolderBrowser fb = new FolderBrowser();

  fb.Description = "请选择一个目录:";

  //fb.Style=FolderNameEditor.FolderBrowserStyles.RestrictToFilesystem;

  fb.ShowDialog();

      string dirPath=fb.DirectoryPath;

      fb.Dispose();      

  return dirPath;

 }

}

复制目录

private int dirCopy(string dirFrom,string dirTo)

    {

      if(!Directory.Exists(dirFrom)) throw(new Exception(dirFrom+" not exists"));

      if(Directory.Exists(dirTo)) throw(new Exception(dirTo+" exists"));

      Directory.CreateDirectory(dirTo);

      try

      {

        foreach(string f in Directory.GetFiles(dirFrom))

        { 

          File.Copy(f,dirTo+"\\"+Path.GetFileName(f));

        }

        foreach(string d in Directory.GetDirectories(dirFrom))

        {

          dirCopy(d,dirTo+"\\"+Path.GetFileName(d));

        }

        return 0;

      }

      catch(Exception){ return -1;}      

    }







      /// <summary>
        /// 计算两个日期的时间间隔
        /// </summary>
        /// <param >第一个日期和时间</param>
        /// <param >第二个日期和时间</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值表示的秒数。

posted on 2009-02-11 09:32 SevenDays 阅读(1650) 评论(0)  编辑  收藏 所属分类: .NET技术


只有注册用户登录后才能发表评论。


网站导航:
 
<2009年2月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
1234567

导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜