.NET中常用C#函数
2009-04-21 13:22
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); 1.19獲得當前時間是第幾周 using System.Globalization; GregorianCalendar gc = new GregorianCalendar(); Console.WriteLine(gc.GetWeekOfYear(DateTime.Now,CalendarWeekRule.FirstDay,DayOfWeek.Monday)); 1.20 计算两个日期差 DateTime time1 =new DateTime(1982,4,24,14,23,06); DateTime time2 =new DateTime(1982,1,21,8,16,32); TimeSpan ts= time2.Subtract(time1); string timespan = "相差:" +ts.Days.ToString()+"天" +ts.Hours.ToString()+"小时" +ts.Minutes.ToString()+"分钟" +ts.Seconds.ToString()+"秒"; 1.21直接接“年月日”格式的字符串 string currentTime=System.DateTime.Now.tostring("yyyy年MM月dd日"); 以上函数在IDE环境中都有相关的帮助。 2、Int32.Parse(变量) Int32.Parse("常量") 字符型转换 转为32位数字型 类型转换可以用CONVERTO系列函数显式进行; 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 ; 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)); //结果为“我是萨达姆之一” %> 28 MD5加密 private static string MD5(string str) { MD5 md5 = new MD5CryptoServiceProvider(); byte[] result = md5.ComputeHash(System.Text.Encoding.Default.GetBytes(str)); string str2 = ""; for(int i=0;i<result.Length;i++) { str2 += string.Format("{0:x}",result[i]); } return str2.ToLower (); } 30 DataGrid的鍵盤的下鍵 protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if (keyData == Keys.Down) { MessageBox.Show("down"); } return base.ProcessCmdKey (ref msg, keyData); } 31 ASP.NET 带参数 exe 文件 System.Diagnostics.Process.Start("cmd",@"/c mysqldump --user=root --password=123 mysql > c:/db.sql -t");//用途最多的 System.Diagnostics.Process.Start("notepad.exe","c://record.txt"); System.Diagnostics.Process.Start("IEXPLORE.EXE","http://jnjx.126.com"); 32 绑定DataGrid指定的行数 BindingManagerBase bm=dataGrid1.BindingContext[dataGrid1.DataSource,dataGrid1.DataMember]; if(bm.Count==0){return;} DataRow dr=((System.Data.DataRowView)bm.Current).Row; 33 C#调出Outlook界面并发送郵件 System.Diagnostics.Process.Start( "mailto:abc@abc.com?subject=標題&body=郵件內容"); 調用dos程序,不會顯示dos介面 System.Diagnostics.Process p = new System.Diagnostics.Process(); p.StartInfo.FileName="cmd.exe"; p.StartInfo.UseShellExecute=false; p.StartInfo.RedirectStandardInput=true; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardError = true; p.StartInfo.CreateNoWindow = true; p.Start(); p.StandardInput.WriteLine("net start mysql"); p.StandardInput.WriteLine("exit"); p.StandardOutput.ReadToEnd(); p.Close(); |