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 ...
随机推荐
- 123457123457#1#-----com.threeapp.circlerunner01----儿童旋转跑酷游戏
com.threeapp.circlerunner01----儿童旋转跑酷游戏
- 定时杀死warn进程
6 6 * * * /root/wz/mysqlRestart.sh #MySQL restart7 6 * * * /bin/sh /home/warn/kill_.sh8 6 * * * / ...
- Kafka管理与监控——broker宕机后无法消费问题
背景 因磁盘满了,导致kafka所有的服务器全部宕机了,然后重启kafka集群,服务是启动成功了,但有一些报错: broker1: broker2: broker3:一直在刷以下错误信息 虽然报了这些 ...
- 【Leetcode_easy】669. Trim a Binary Search Tree
problem 669. Trim a Binary Search Tree 参考 1. Leetcode_easy_669. Trim a Binary Search Tree; 完
- vue时间戳转换(10位数)/(13位)
<template> <!-- time为时间戳 --> <div>{{time | formatDate}}</div> <!-- 结果为 20 ...
- 洛谷 题解 UVA1395 【苗条的生成树 Slim Span】
[题意] 给出一个\(n(n<=100)\)个节点的的图,求最大边减最小边尽量小的生成树. [算法] \(Kruskal\) [分析] 首先把边按边权从小到大进行排序.对于一个连续的边集区间\( ...
- Python爬虫入门教程之BeautifulSoup
模块安装 pip3 install beautifulsoup4 模块导入 from bs4 import BeautifulSoup 示例html内容 RPC是一种比较流行的RPC通信框架,由谷歌公 ...
- uwp,c#,listView与gridView列表控件进阶
listView与gridView使用类似,这里讲解gridView的一些数据绑定(x:Bind)基础知识. 顺便学习下如何使用属性通知.(后台中的数据变化会直接显示在UI上,实现动态变化,默认是没有 ...
- Python 【类与对象】
类与对象 把类的个例就叫做实例 (instance),可理解为“实际的例子”类是某个特定的群体,实例是群体中某个具体的个体 Python中的对象等于类和实例的集合:即类可以看作是对象,实例也可以看作是 ...
- Gossip协议
Gossip数据传播协议: Fabric通过将工作负载划分到事务执行(背书和提交)对等节点和事务排序节点,优化了区块链网络性能.安全性和可伸缩性.这种网络操作的解耦需要一个安全.可靠和可伸缩的数据传播 ...