云计算百科
云计算领域专业知识百科平台

C#基础工具模块:Math静态类、日期相关功能梳理

Math类提供常用数学运算方法,包括取整(Floor/Ceiling/Round)、绝对值(Abs)、最大最小值(Max/Min)、开方(Sqrt)、幂运算(Pow)、三角函数(Sin/Cos/Tan)和对数运算(Log/Log10)。DateTime类用于日期时间操作,支持获取当前时间(Now)、格式化输出(ToString)、时间戳转换(ToUnixTimeSeconds)和时间计算(AddYears等)。TimeSpan可用于计算时间间隔,包含Days和TotalSeconds等属性。文章还介绍了数值类型的极限值(如int.MaxValue)和日期解析方法。

Math静态类

Math 提供一些关于数学运算的方法

Math.PI 圆周率

Math.Floor(2.9);向下取整

Math.Ceiling(3.1); 向上取整

Math.Round()  所谓银行家舍入法,其实质是一种四舍六入五取偶(又称四舍六入五留双)法。其规则是:当舍去位的数值小于5时,直接舍去该位;当舍去位的数值大于等于6时,在舍去该位的同时向前位进一;当舍去位的数值等于5时,如果前位数值为奇,则在舍去该位的同时向前位进一,如果前位数值为偶, 则直接舍去该位。

Math.Abs(-1);  绝对值

Math.Max(参数一,参数二);求俩个数的 最大值

Math.Min(参数一,参数二); 求俩个数的 最小值

Math.Sqrt(9);  开方运算 ,返回值是指定数字的平方根

Math.Pow(参数一,参数二)); 用于计算第一个参数(底数)的第二个参数(指数)次方,返回值是double 类型

Math.Sin()正弦、Math.Cos()余弦、Math.Tan ()正切方法仅接受弧度(Math.PI)作为参数

Math.Log10()  返回指定数字以10为底的对数是多少 例如Math.Log10(100); 返回值是 2   10的多少次方等于100 

Math.Log(10)返回指定数字以e为底的对数是多少

Math.BigMul(,)返回两个数的乘积

关于数据类型的API和属性

double.NegativeInfinity   负无穷大(Negative消极 )

double.PositiveInfinity  正无穷大

int.MaxValue  int类型最大值 2147483647 整型的最大值

int.MinValue     int类型最小值 -2147483648 整型的最小值
decimal.MaxValue    十进制数最大值 
sbyte.MaxValue      有符号字节类型最大值 127

日期对象

DateTime 日期的类,提供一些获取当前时间、时间格式化、计算时间戳等功能

DateTime time = DateTime.Now; 获取当前运行代码的计算机(本地机器)的系统日期和时间(包含年月日时分秒毫秒),并将这个时间值赋值给名为 time 的 DateTime 类型变量。

DateTime time = DateTime.Now;

//可以时间对象转成字符串进行打印
Console.WriteLine(time.ToString());//2025/12/5 14:06:52
Console.WriteLine(time.Year); // 获取当前年
Console.WriteLine(time.Month);//获取当前月
Console.WriteLine(time.Day); //获取当前日
Console.WriteLine(time.Hour);//获取当前小时
Console.WriteLine(time.Minute);//获取当前分钟
Console.WriteLine(time.Second);//获取当前秒
Console.WriteLine(time.Millisecond);//获取当前毫秒
Console.WriteLine(time.DayOfWeek); // 当前的星期

//根据一些特殊的符号获取对应时间
Console.WriteLine(time.ToString("yy"));//年的后两位
Console.WriteLine(time.ToString("yyyy"));//2025
Console.WriteLine(time.ToString("MM")); //当前月份12 表示如果6 打印06
Console.WriteLine(time.ToString("MMM"));//12月 操作系统是win11是12月,低版本系统是十二月
Console.WriteLine(time.ToString("MMMM"));//十二月
Console.WriteLine(time.ToString("dd")); // 某月的第几天 05
Console.WriteLine(time.ToString("ddd")); //周五
Console.WriteLine(time.ToString("dddd"));//星期五
Console.WriteLine(time.ToString("hh")); //12小时制 02
Console.WriteLine(time.ToString("HH")); //24小时制 12
Console.WriteLine(time.ToString("mm"));//分钟 28
Console.WriteLine(time.ToString("ss"));//秒
Console.WriteLine(time.ToString("fff"));//毫秒数

时间戳

DateTimeOffset dateTimeOffset =new DateTimeOffset(DateTime.Now);时间戳对象 获取距离当前时间的时间戳对象

//new DateTimeOffset(time);时间戳对象 获取距离当前时间的时间戳对象
DateTimeOffset dateTimeOffset = new DateTimeOffset(time);
Console.WriteLine(dateTimeOffset.ToUnixTimeMilliseconds()+""); //从1970年到目前之前的毫秒数
Console.WriteLine(dateTimeOffset.ToUnixTimeSeconds() +"");//从1970年到目前之前的秒数

//指定时间创建时间对象
DateTime birthDate = new DateTime(2025, 05, 27, 14, 20, 40);
Console.WriteLine(birthDate.ToString());
DateTimeOffset off1 = new DateTimeOffset(birthDate);//获取出生的时间戳);
DateTimeOffset off2=new DateTimeOffset(DateTime.Now);//获取当前时间戳

Console.WriteLine(off2.ToUnixTimeSeconds() – off1.ToUnixTimeSeconds());//16590804

//也可以通过一些字符 快速格式化日期字符串
Console.WriteLine(time.ToString("G"));//2025/12/5 14:56:23
Console.WriteLine(time.ToString("F"));//2025年12月5日 14:56:23
Console.WriteLine(time.ToString("D"));//2025年12月5日

Console.WriteLine(time.DayOfYear); //获取今年过了几天 339
Console.WriteLine((int)time.DayOfWeek); //枚举类型可以进行强制转成整型的 5 0代表周日
Console.WriteLine(time.ToString("今年:yyyy年"));

// 解析美式日期(MM/dd/yyyy)
string usDateStr = "12/19/2025";
DateTime usDate = DateTime.Parse(usDateStr, new CultureInfo("en-US"));
Console.WriteLine(usDate); // 输出:2025/12/19 0:00:00

// 解析中文格式日期
string cnDateStr = "2025年12月19日";
DateTime cnDate = DateTime.Parse(cnDateStr, new CultureInfo("zh-CN"));
Console.WriteLine(cnDate); // 输出:2025/12/19 0:00:00

日期计算方法

DateTime time = DateTime.Now; //获得当前时间
time = time.AddYears(1); // 年份加一
time = time.AddMonths(1);//月份加一
time = time.AddDays(1);//天数一
time = time.AddHours(1);//小时加一
time = time.AddMinutes(1);//分钟 加一
time = time.AddSeconds(1);//秒 加一
time = time.AddMilliseconds(1);//毫秒 加一

Console.WriteLine(time.ToString());// 将时间类型(DateTime)转换为 字符串
time = DateTime.Now.AddYears(-10); // 年份+(-10) 也就是10年前
Console.WriteLine(time.ToString());//

if (DateTime.Now < new DateTime(2026, 1, 1)) //当前时间与2026年1月1日进行比较
{
Console.WriteLine("2026之前");

}
else
{
Console.WriteLine("2026之后");
}
// 获取距离时间点还有多长时间//
//TimeSpan 时间标签 时间戳
TimeSpan span = new DateTime(2026, 1, 1) – DateTime.Now;
Console.WriteLine(span.Days); //时间点相差天数
Console.WriteLine(span.TotalSeconds); //总秒数

赞(0)
未经允许不得转载:网硕互联帮助中心 » C#基础工具模块:Math静态类、日期相关功能梳理
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!