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 ...
随机推荐
- 123456---com.twoapp.xiaoxiaofeixingyuan---小小飞行员
com.twoapp.xiaoxiaofeixingyuan---小小飞行员
- python之socket编程(一)
socket之前我们先来熟悉回忆几个知识点. OSI七层模型 OSI(Open System Interconnection)参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标 ...
- Core Data 的使用
一.概念 1.Core Data 是数据持久化存储的最佳方式 2.数据最终的存储类型可以是:SQLite数据库,XML,二进制,内存里,或自定义数据类型 在Mac OS X 10.5Leopard及以 ...
- 第十五章 单点登录——《跟我学Shiro》
目录贴:跟我学Shiro目录贴 Shiro 1.2开始提供了Jasig CAS单点登录的支持,单点登录主要用于多系统集成,即在多个系统中,用户只需要到一个中央服务器登录一次即可访问这些系统中的任何一个 ...
- 搭建Android与多ble蓝牙设备并发通讯小框架
此框架支持多种不同类型的ble设备,同时连接.收发数据,互不干扰.比如APP同时连两个LED蓝牙灯.两个手环.一个蓝牙加热器,当然连接单个ble设备,或者只连接一种ble设备同样适用本框架. 前言 小 ...
- Unity接入九游SDK学习与踩坑
学习之路漫漫,应修之期远兮.持之以恒,方得始终. 这几日接入九游SDK,于浑浑噩噩中成长. 下面是步骤: 一:下载九游SDK 二:打开Android Studio新建一个工程,并且新建一个Androi ...
- 【数据库开发】Redis key-value内存数据库介绍
Redis是一个开源的,先进的 key-value 存储可用于构建高性能,可扩展的 Web 应用程序的解决方案.Redis官方网网站是:http://www.redis.io/,如下: Redis 有 ...
- Linux与windows的对比
Linux与windows的对比 声明:下面的内容总结自实验楼的linux教程,特在此说明. Linux与windows一样,是一个操作系统. Linux与Windows的区别 软件与支持 windo ...
- 移动架构-AOP面向切面编程
AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是软件开发中的一个热点, ...
- linux环境上报异常java.lang.NoSuchMethodError
23-Apr-2019 18:11:35.545 INFO [http-nio-10052-exec-10] org.apache.catalina.core.ApplicationContext.l ...