C#基础 类及常用函数【string 、Math 、DiteTime 、TimeSpan】

 

一  string 类型  

 string str = "abcdefg";


str.Length  -  字符串长度,返回int类型             

str.TrimStart()         - 去掉前空格

str.TrimEnd()           - 去掉后空格

str.Trim()                - 去掉字符串的前后空格  string                                  //  只能去掉前,后的空格,不能去掉中间的空格

str.ToUpper();          - 将字符串中的小写英文字符转换成大写 

str.ToLower();          - 将字符串中的小写英文字符转换成大写

str.SubString(a);         截取字符串,留下索引a(包含)以后的字符                // 注意索引必须在长度以内否则报错

str.SubString(a,b);      从索引a(包含)开始截取,截取b个字符

str.IndexOf("串");         - 返回字符串中第一个匹配项的索引                  

str.LastIndexOf("串");   - 返回最后一个匹配项的索引               //如果没有匹配项返回-1  

str.StartWith("串");      - 判断是否以什么开头                            // 返回bool类型

str.EndsWith("串");      - 判断是否以什么结尾

str.Contains("串");         - 判断是否包含                                    //不看位置

str.Replace(“1”, “2”);     - 字符替换 ,用2替换1                          //可以消除字符串中间的空格

str.Remove(3);                - 移除从索引到末尾的全部字符 

 

二 Math 类

Math.Pow(x,y);                - 次方                   double d = Math.Pow(2.3);

Math.Sqrt(x);                   - 平方根                d = 2的3次方

Math.Ceiling(double);       - 取上限                double d = Math.Ceiling(10.3);  d = 11

Math.Floor(double);          - 取下限

Math.Round(double);        - 取四舍五入                                        //整数部分奇数时.5上位。整数部分为偶数.5舍去

Math.Abs(double);            - 取绝对值

 

三 DiteTime 类

 1、定义时间(对象实例化)     

 DateTime dt = new DateTime();
 DateTime dt =DateTime.Now;   //获取此电脑系统当前时间
 DateTime dt = new DateTime(int年,int月.int日);  //日期格式

 

2、string 转换成 DateTime         

 string s = "2002年2月2日";
 DateTime dt = Console.ToDateTime(s);

3、DateTime 转换成 string      

 string s = dt.ToString ("yyyy年MM月dd日");                                                                                                    
//yyyy-年 MM-月 dd-日 hh-12制小时 HH-24制小时 mm-分钟 ss-秒 ms-毫秒

 

dt.AddYears();           - 在此时间基础上增加多少年      dt = dt.AddYears(10);    //在原时间的基础上加十年
dt.AddMonths();         - 增加月
dt.AddDays();            - 增加日
dt.AddHours();           - 增加小时
dt.AddMinutes();        - 增加分钟
dt.AddSeconds();       - 增加秒

dt.Year;                     - 获取此时间变量的年份    Console.WriteLine(dt.year);     //只输出年(int类型)
dt.Month;                  - 获取月份
dt.Day;                     - 获取日
dt.Hour;                    - 获取小时
dt.Minute;                 - 获取分钟
dt.Second;                - 获取秒
dt.Millisecond;           - 获取毫秒

dt.DayOfYear; - 获取当前日期是此年中的第几天       

Console.WriteLine(dt.DayOfYear);  
//输出这天是此年的第几天  

dt.DayOfWeek; - 获取是星期几             

 DateTime dt =DateTime.Now;
 //返回英文格式的星期
 string  a = dt.DayOfWeek;

 //获取数字格式的星期   0   1   2   3   4   5   6 
  int  i  =  Convert.ToInt32(dt.DayOfWeek);   

//直接用汉字输出星期  日   一  二  三  四  五  六
  string  xingqi = "星期"+“日一二三四五六”.Substring(i,1);    

dt.TimeOfDay;   - 获取时间部分      // 只获取时分秒
dt.Date;            - 获取日期部分

 

四  TimeSpan类型  - 时间间隔类型

 DateTime  dt  = new DateTime(2017,3,1); 
 DateTime  dtt  = new DateTime(2017,3,1);
 TimeSpan  ts  =  dtt-dt                                     
//输出结果为31.00:00:00
//可为负数
  

ts.Days                - 差距多少天                      //只取天数
ts.Hours               - 一天中差距多少小时          //一天中相差多少时间,不比较年月日,只看小时
ts.Minutes            - 一天中差距多少分钟
ts.Seconds            - 一天中差距多少秒
ts.Milliseconds       - 毫秒

ts.Total....              累计差距    

ts.TotalHours();        
//输出一共差多少小时

 

实例

1“请输入您的邮箱:”123@123
 1-“邮箱正确!/错误!”
 2-“只能有一个@符号”
 3-“不能以@开头”
 4-“不能以@结尾”
 5-“@之后必须有点”
 6-“@之后不能是点”
 7- @之后最少一个点,最多两个点
 8-“不能以点结尾”
 9-不能以数字结束

  1
  4                 //1-“邮箱正确!/错误!”    string 放置最终结果
  5                 string end = "邮箱正确!";
  6                 //2-“只能有一个@符号”      bool
  7                 bool atOnlyOne = true;
  8                 //3-“不能以@开头”          bool
  9                 bool atStart = true;
 10                 //4-“不能以@结尾”          bool
 11                 bool atEnd = true;
 12                 //5-“@之后必须有点”        bool
 13                 bool atDian = true;
 14                 //6-“@之后不能是点”         bool
 15                 bool atNoDian = true;
 16                 //7-最少一个点,最多两个点   
 17                 bool dianOneOrTwo = true;
 18                 //8-“不能以点结尾”
 19                 bool dianEnd = true;
 20                 //9-不能以数字结束
 21                 bool NumEnd = true;
 22 
 23                 //一、让用户输入邮箱
 24                 Console.Write("请输入您的邮箱地址:");
 25                 string user_mail = Console.ReadLine();
 26 
 27                 if (user_mail.Length > 0)
 28                 {
 29                     #region 是否只有一个@符号
 30                     int a1 = user_mail.IndexOf("@");
 31 
 32                     if (a1 == -1)
 33                     {
 34                         atOnlyOne = false;
 35                         end = "邮箱格式错误!";
 36                     }
 37                     else
 38                     {
 39                         int a2 = user_mail.IndexOf("@", a1 + 1);
 40                         if (a2 != -1)
 41                         {
 42                             atOnlyOne = false;
 43                             end = "邮箱格式错误!";
 44                         }
 45                     }
 46                     #endregion
 47 
 48                     #region 判断是否以@开头
 49                     if (user_mail.StartsWith("@"))
 50                     {
 51                         atStart = false;
 52                         end = "邮箱格式错误!";
 53                     }
 54                     #endregion
 55 
 56                     #region 判断是否以@结尾
 57                     if (user_mail.EndsWith("@"))
 58                     {
 59                         atEnd = false;
 60                         end = "邮箱格式错误!";
 61                     }
 62                     #endregion
 63 
 64                     #region 判断@之后有没有点,判断如果有点,是不是超过两个
 65                     string a3 = user_mail.Substring(user_mail.IndexOf("@"));
 66                     int a4 = a3.IndexOf(".");
 67                     if (a4 == -1)
 68                     {
 69                         atDian = false;
 70                         end = "邮箱格式错误!";
 71                     }
 72                     else
 73                     {
 74                         //@sina.com.cn
 75                         int a6 = 1; //记录点的个数
 76                         int a5 = a3.IndexOf("."); //获取第一个点的索引
 77 
 78                         while (true)
 79                         {
 80                             a5 = a3.IndexOf(".", a5 + 1);//持续往后找点
 81                             if (a5 != -1)
 82                                 a6++;
 83                             else
 84                                 break;
 85                         }
 86 
 87                         if (a6 > 2)
 88                         {
 89                             dianOneOrTwo = false;
 90                             end = "邮箱格式错误!";
 91                         }
 92                     }
 93                     #endregion
 94 
 95                     #region @之后不能是点
 96                     if (user_mail.IndexOf("@.") != -1)
 97                     {
 98                         atNoDian = false;
 99                         end = "邮箱格式错误!";
100                     }
101                     #endregion
102 
103                     #region 不能以点结尾
104                     if (user_mail.EndsWith(".") == true)
105                     {
106                         dianEnd = false;
107                         end = "邮箱格式错误!";
108                     }
109                     #endregion
110 
111                     #region 不能以数字结束
112                     string a10 = user_mail.Substring(user_mail.Length - 1, 1);
113                     try
114                     {
115                         Convert.ToInt32(a10);
116                         NumEnd = false;
117                         end = "邮箱格式错误!";
118                     }
119                     catch { }
120                     #endregion
121 
122                     #region 打印结果
123                     //打印结果!!!
124                     if (atOnlyOne == false)
125                         Console.WriteLine("只能有一个@符号");
126                     if (atStart == false)
127                         Console.WriteLine("不能以@开头");
128                     if (atEnd == false)
129                         Console.WriteLine("不能以@结尾");
130                     if (atDian == false)
131                         Console.WriteLine("@之后必须有点");
132                     if (atNoDian == false)
133                         Console.WriteLine("@之后不能是点");
134                     if (dianOneOrTwo == false)
135                         Console.WriteLine("最少一个点,最多两个点");
136                     if (dianEnd == false)
137                         Console.WriteLine("不能以点结尾");
138                     if (NumEnd == false)
139                         Console.WriteLine("不能以数字结束");
140 
141                     Console.WriteLine(end);
142                     #endregion
143                 }
144                 else
145                 {
146                     Console.WriteLine("邮箱不能为空!");
147                 }
148 
149 150             Console.ReadKey();

2“请输入身份证号(18位):”
 判断正确性:
 全数字
 最后一位x/X
 中间时间是否正确
 
 “您的生日是:xxxx年xx月xx日”

 1 Console.Write("请输入您的身份证号:");
 2             string user = Console.ReadLine();
 3 
 4             //判断是否是18位
 5             if (user.Length == 18)
 6             {
 7                 string user17 = user.Substring(0, user.Length - 1);
 8 
 9                 try
10                 {
11                    Convert.ToInt64(user17);
12                     //如果能走到这里,说明没问题
13                     string userLast = user.Substring(user.Length - 1, 1);
14                     bool LastIsNumber = true;
15                     try
16                     {
17                         Convert.ToInt32(userLast);
18                     }
19                     catch { LastIsNumber = false; }
20 
21                     //判断最后一位是否正确
22                     if (userLast.ToLower() == "x" || LastIsNumber )
23                     {
24                         //如果走到这里,说明格式都正确
25                         //判断日期是否正确
26                         string year = user.Substring(6, 4);
27                         string month = user.Substring(10, 2);
28                         string day = user.Substring(12, 2);
29 
30                         try
31                         {
32                             DateTime dt = new DateTime(Convert.ToInt32(year), Convert.ToInt32(month), Convert.ToInt32(day));
33 
34                             Console.WriteLine("您的生日是:"+dt.ToString("yyyy年MM月dd日"));
35                         }
36                         catch { Console.WriteLine("身份证日期不正确!"); }
37                     }
38                     else
39                     {
40                         Console.WriteLine("输入的格式不正确!1");
41                     }
42                 }
43                 catch
44                 {
45                     Console.WriteLine("输入的格式不正确!2");
46                 }
47             }
48             else
49                 Console.WriteLine("身份证位数不正确!3");
50 
51             Console.ReadKey();

3
“请输入年:”
“请输入月:”
“请输入日:”

判断是否正确

“xxxx年xx月xx日是此年中的第xx天,星期几”

“距离2012年12月24日世界末日还有xxx天”
“距离2012年12月24日世界末日已经过去了xxx天”
“您输入的是世界末日!!!”

 1 Console.Write("请输入年:");
 2             string year = Console.ReadLine();
 3             Console.Write("请输入月:");
 4             string month = Console.ReadLine();
 5             Console.Write("请输入日:");
 6             string day = Console.ReadLine();
 7 
 8             try
 9             {
10                 DateTime dt = new DateTime(Convert.ToInt32(year), Convert.ToInt32(month), Convert.ToInt32(day));
11 
12                 string week = "星期" + "日一二三四五六".Substring(Convert.ToInt32(dt.DayOfWeek), 1);
13                 Console.WriteLine(dt.Year + "" + dt.Month + "" + dt.Day + "日是此年中的第" + dt.DayOfYear + "天," + week);
14 
15                 DateTime dtt = new DateTime(2012, 12, 24);
16 
17                 TimeSpan ts = dt - dtt;
18 
19                 int ddd = Convert.ToInt32(ts.TotalDays);
20 
21                 if (ddd < 0)
22                 {
23                     Console.WriteLine("距离2012年12月24日世界末日还有" + Math.Abs(ddd) + "");
24                 }
25                 else if (ddd > 0)
26                 {
27                     Console.WriteLine("距离2012年12月24日世界末日已经过去了" + ddd + "");
28                 }
29                 else
30                 {
31                     Console.WriteLine("您输入的是世界末日!!!");
32                 }
33             }
34             catch { Console.WriteLine("你填的些啥???"); }
35 
36 
37 
38             Console.ReadLine();

 

posted @ 2017-02-28 21:40  唐宏昌  阅读(365)  评论(0编辑  收藏  举报