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,);
dt.TimeOfDay; - 获取时间部分 // 只获取时分秒
dt.Date; - 获取日期部分
四 TimeSpan类型 - 时间间隔类型
DateTime dt = new DateTime(,,);
DateTime dtt = new DateTime(,,);
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-“邮箱正确!/错误!” string 放置最终结果
string end = "邮箱正确!";
//2-“只能有一个@符号” bool
bool atOnlyOne = true;
//3-“不能以@开头” bool
bool atStart = true;
//4-“不能以@结尾” bool
bool atEnd = true;
//5-“@之后必须有点” bool
bool atDian = true;
//6-“@之后不能是点” bool
bool atNoDian = true;
//7-最少一个点,最多两个点
bool dianOneOrTwo = true;
//8-“不能以点结尾”
bool dianEnd = true;
//9-不能以数字结束
bool NumEnd = true;
//一、让用户输入邮箱
Console.Write("请输入您的邮箱地址:");
string user_mail = Console.ReadLine();
if (user_mail.Length > )
{
#region 是否只有一个@符号
int a1 = user_mail.IndexOf("@");
if (a1 == -)
{
atOnlyOne = false;
end = "邮箱格式错误!";
}
else
{
int a2 = user_mail.IndexOf("@", a1 + );
if (a2 != -)
{
atOnlyOne = false;
end = "邮箱格式错误!";
}
}
#endregion
#region 判断是否以@开头
if (user_mail.StartsWith("@"))
{
atStart = false;
end = "邮箱格式错误!";
}
#endregion
#region 判断是否以@结尾
if (user_mail.EndsWith("@"))
{
atEnd = false;
end = "邮箱格式错误!";
}
#endregion
#region 判断@之后有没有点,判断如果有点,是不是超过两个
string a3 = user_mail.Substring(user_mail.IndexOf("@"));
int a4 = a3.IndexOf(".");
if (a4 == -)
{
atDian = false;
end = "邮箱格式错误!";
}
else
{
//@sina.com.cn
int a6 = ; //记录点的个数
int a5 = a3.IndexOf("."); //获取第一个点的索引
while (true)
{
a5 = a3.IndexOf(".", a5 + );//持续往后找点
if (a5 != -)
a6++;
else
break;
}
if (a6 > )
{
dianOneOrTwo = false;
end = "邮箱格式错误!";
}
}
#endregion
#region @之后不能是点
if (user_mail.IndexOf("@.") != -)
{
atNoDian = false;
end = "邮箱格式错误!";
}
#endregion
#region 不能以点结尾
if (user_mail.EndsWith(".") == true)
{
dianEnd = false;
end = "邮箱格式错误!";
}
#endregion
#region 不能以数字结束
string a10 = user_mail.Substring(user_mail.Length - , );
try
{
Convert.ToInt32(a10);
NumEnd = false;
end = "邮箱格式错误!";
}
catch { }
#endregion
#region 打印结果
//打印结果!!!
if (atOnlyOne == false)
Console.WriteLine("只能有一个@符号");
if (atStart == false)
Console.WriteLine("不能以@开头");
if (atEnd == false)
Console.WriteLine("不能以@结尾");
if (atDian == false)
Console.WriteLine("@之后必须有点");
if (atNoDian == false)
Console.WriteLine("@之后不能是点");
if (dianOneOrTwo == false)
Console.WriteLine("最少一个点,最多两个点");
if (dianEnd == false)
Console.WriteLine("不能以点结尾");
if (NumEnd == false)
Console.WriteLine("不能以数字结束");
Console.WriteLine(end);
#endregion
}
else
{
Console.WriteLine("邮箱不能为空!");
}
Console.ReadKey();
2“请输入身份证号(18位):”
判断正确性:
全数字
最后一位x/X
中间时间是否正确
“您的生日是:xxxx年xx月xx日”
Console.Write("请输入您的身份证号:");
string user = Console.ReadLine();
//判断是否是18位
if (user.Length == )
{
string user17 = user.Substring(, user.Length - );
try
{
Convert.ToInt64(user17);
//如果能走到这里,说明没问题
string userLast = user.Substring(user.Length - , );
bool LastIsNumber = true;
try
{
Convert.ToInt32(userLast);
}
catch { LastIsNumber = false; }
//判断最后一位是否正确
if (userLast.ToLower() == "x" || LastIsNumber )
{
//如果走到这里,说明格式都正确
//判断日期是否正确
string year = user.Substring(, );
string month = user.Substring(, );
string day = user.Substring(, );
try
{
DateTime dt = new DateTime(Convert.ToInt32(year), Convert.ToInt32(month), Convert.ToInt32(day));
Console.WriteLine("您的生日是:"+dt.ToString("yyyy年MM月dd日"));
}
catch { Console.WriteLine("身份证日期不正确!"); }
}
else
{
Console.WriteLine("输入的格式不正确!1");
}
}
catch
{
Console.WriteLine("输入的格式不正确!2");
}
}
else
Console.WriteLine("身份证位数不正确!3");
Console.ReadKey();
3
“请输入年:”
“请输入月:”
“请输入日:”
判断是否正确
“xxxx年xx月xx日是此年中的第xx天,星期几”
“距离2012年12月24日世界末日还有xxx天”
“距离2012年12月24日世界末日已经过去了xxx天”
“您输入的是世界末日!!!”
Console.Write("请输入年:");
string year = Console.ReadLine();
Console.Write("请输入月:");
string month = Console.ReadLine();
Console.Write("请输入日:");
string day = Console.ReadLine();
try
{
DateTime dt = new DateTime(Convert.ToInt32(year), Convert.ToInt32(month), Convert.ToInt32(day));
string week = "星期" + "日一二三四五六".Substring(Convert.ToInt32(dt.DayOfWeek), );
Console.WriteLine(dt.Year + "年" + dt.Month + "月" + dt.Day + "日是此年中的第" + dt.DayOfYear + "天," + week);
DateTime dtt = new DateTime(, , );
TimeSpan ts = dt - dtt;
int ddd = Convert.ToInt32(ts.TotalDays);
if (ddd < )
{
Console.WriteLine("距离2012年12月24日世界末日还有" + Math.Abs(ddd) + "天");
}
else if (ddd > )
{
Console.WriteLine("距离2012年12月24日世界末日已经过去了" + ddd + "天");
}
else
{
Console.WriteLine("您输入的是世界末日!!!");
}
}
catch { Console.WriteLine("你填的些啥???"); }
Console.ReadLine();
C#基础 类及常用函数【string 、Math 、DiteTime 、TimeSpan】的更多相关文章
- Java中math类的常用函数
Java中math类的常用函数 在 Java 中 Math 类封装了常用的数学运算,提供了基本的数学操作,如指数.对数.平方根和三角函数等 只要在源文件的顶部加上下面这行代码就不必在数学方法名和常量名 ...
- java 多线程总结篇2之——Thread类及常用函数
此片文章主要总结的是Thread类及相关的基础概念和API,首先需要厘清线程调度中的几个基本概念: 一.线程调度的基本方法 1.调整线程优先级:Java线程有优先级,优先级高的线程会获得较多的运行机会 ...
- c++学习笔记之基础---类内声明函数后在类外定义的一种方法
在C++的“类”中经常遇到这样的函数, 返回值类型名 类名::函数成员名(参数表){ 函数体.} 双冒号的作用 ::域名解析符!返回值类型名 类名::函数成员名(参数表) { 函数体. } 这个是在类 ...
- 【MySQL基础总结】常用函数库
常用函数库 数学函数 分类及含义 示例 字符串函数 分类及含义 示例 日期时间函数 分类及含义 示例 条件判断函数 分类及含义 示例 系统函数 分类及含义 加密函数 分类及定义 其他常用函数 分类及含 ...
- [C/C++基础] C语言常用函数memset的使用方法
函数声明:void *memset(void *s, int ch, size_t n); 用途:为一段内存的每一个字节都赋予ch所代表的值,该值采用ASCII编码. 所属函数库:<memory ...
- c#基础语言编程-常用函数
类型转换Convert Convert考虑数据意义的转换. Convert是一个加工.改造的过程.在使用Convert的转换过程中不会返回异常,当遇到类型转换的不知道的时候,用Convert找找. T ...
- 输入输出流类iostream常用函数解析
原创作品,转载请注明出处:http://www.cnblogs.com/shrimp-can/p/5657192.html 一.成员类型 1. ios::fmtflags: 格式标志,常用来设置输出的 ...
- Qt QString类及常用函数功能详解
QString 是 Qt 编程中常用的类,除了用作数字量的输入输出之外,QString 还有很多其他功能,熟悉这些常见的功能,有助于灵活地实现字符串处理功能. QString 存储字符串釆用的是 Un ...
- System类及其常用函数
System 类包含一些有用的类字段和方法.它不能被实例化. 常用方法: 1.static void arraycopy(Object src, int srcPos, Object dest, in ...
随机推荐
- Kafka Connect Architecture
Kafka Connect's goal of copying data between systems has been tackled by a variety of frameworks, ma ...
- cut截取数据
参考文档 https://blog.csdn.net/caoshunxin01/article/details/79355566 [root@kube-node3 ~]# cat tab_space. ...
- 第一次linux下安装nginx记录
CentOS 7 安装Nginx 并配置自动启动 1.下载Nginx安装包---->地址:http://nginx.org/en/download.html 2.上传安装包到服务期 : rz 命 ...
- 01.轮播图之一 :scrollView 轮播
接触的每个项目,都会用到轮播图的部分,轮播图都写了好多次,用过各种各样的方式写: 这篇总结的博客,我将分为几个篇幅写,希望写完这几篇博客之后,我能总结出自己写这个轮播的优缺和不同之处 scrollvi ...
- 字符串匹配算法---BF
Brute-Force算法,简称BF算法,是一种简单朴素的模式匹配算法,常用语在一个主串string 内查找一个子串 pattern的出现位置. 核心思想: i 遍历主串string i 每自增一次, ...
- jquery判断元素是否包含某class
// <div id="id" class="add on"></div> var flag = $("#id"). ...
- Java使用icepdf转高清图片
<dependency> <groupId>org.icepdf.os</groupId> <artifactId>icepdf-core</ar ...
- 乐字节Java变量与数据类型之一:Java编程规范,关键字与标识符
大家好,我是乐字节的小乐,这次要给大家带来的是Java变量与数据类型.本文是第一集:Java编程规范,关键字与标识符. 一.编程规范 任何地方的名字都需要见名知意: 代码适当缩进 书写过程成对编程 对 ...
- PCL学习(五)如何在mesh模型上sample更多点及三维物体姿态估计
---恢复内容开始--- 最近在做关于物体姿态估计的项目 基本思路就是 我们在估计物体的pose的时候,需要用分割得到的点云与模型库中的模型做匹配 1.通过基于RANSANC的SAC-IA将点云和模型 ...
- mac 10.14.5 [vue create的时候 mkdir没有权限]
1.vue create的时候 mkdir没有权限 2.第一步.先检查系统是否开启了安全模式 csrutil status 3.如果是disabled.进去步骤5,直接查看文件夹权限.如果是enabl ...