前言:
此刻兄弟们对“7月份等于多少天”大约比较关心,看官们都想要知道一些“7月份等于多少天”的相关内容。那么小编在网络上网罗了一些有关“7月份等于多少天””的相关知识,希望朋友们能喜欢,各位老铁们快快来了解一下吧!C#包含DateTime可处理日期和时间的结构。
要在C#中使用日期和时间,请使用 new 关键字创建 DateTime 结构的对象。
下面创建一个具有默认值的 DateTime 对象。
创建DateTime对象:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DateTime1{ internal class Program { static void Main(string[] args) { DateTime dt = new DateTime(); // 分配默认值 01/01/0001 00:00:00 Console.WriteLine(dt.ToString()); } }}
DateTime 对象的默认值和最小值是0001年1月1日00:00:00(午夜)。最大值可以是9999年12月31日晚上11:59:59
使用 DateTime 结构的不同构造函数为 DateTime 对象分配初始值。
设置日期和时间:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace SetDateTime{ internal class Program { static void Main(string[] args) { //分配默认值01/01/0001 00:00:00 DateTime dt1 = new DateTime(); //分配年,月,日 DateTime dt2 = new DateTime(2019, 12, 31); //分配年,月,日, hour, min, seconds DateTime dt3 = new DateTime(2020, 12, 31, 5, 10, 20); //分配年,月,日, hour, min, seconds, UTC timezone:时区 DateTime dt4 = new DateTime(2022, 12, 31, 5, 10, 20, DateTimeKind.Utc); Console.WriteLine(dt1); Console.WriteLine(dt2); Console.WriteLine(dt3); Console.WriteLine(dt4); } }}
上述代码都是源代码,可以自己尝试修改,看看效果,尽可能自己敲出来,而不是复制粘贴。
注意:在构造函数中指定了年,月和日。年份可以是0001到9999,月份可以是1到12,日期可以是1到31。超出这些范围设置任何其他值都将导致运行时异常。如下所示:
未经处理的异常: System.ArgumentOutOfRangeException: 年、月和日参数描述无法表示的 DateTime。在 System.DateTime.DateToTicks(Int32 year, Int32 month, Int32 day)在 System.DateTime..ctor(Int32 year, Int32 month, Int32 day)在 SetDateTime.Program.Main(String[] args) 位置
错误代码示例:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace SetDateTime{ internal class Program { static void Main(string[] args) { //分配默认值01/01/0001 00:00:00 DateTime dt1 = new DateTime(); //分配年,月,日 DateTime dt2 = new DateTime(2019, 12, 31); //分配年,月,日, hour, min, seconds DateTime dt3 = new DateTime(2020, 12, 31, 5, 10, 20); //分配年,月,日, hour, min, seconds, UTC timezone DateTime dt4 = new DateTime(2022, 12, 31, 5, 10, 20, DateTimeKind.Utc); DateTime dt5 = new DateTime(10000, 12, 31);//报错代码大于9999了 Console.WriteLine(dt1); Console.WriteLine(dt2); Console.WriteLine(dt3); Console.WriteLine(dt4); Console.WriteLine(dt5); } }}//年份可以是0001到9999,月份可以是1到12,日期可以是1到31。//超出这些范围设置任何其他值都将导致运行时异常Ticks(时间戳)
Ticks通常指的是从某个参考时间点开始计算的时间间隔,单位是毫秒或纳秒。Ticks可以用来表示一个特定时间点,比如1970年1月1日午夜以来经过的毫秒数。Ticks通常用于记录事件的发生时间或计算时间间隔。
示例代码:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DateTimeTicks{ internal class Program { static void Main(string[] args) { DateTime dt = new DateTime(636370000000000000); Console.WriteLine(DateTime.MinValue.Ticks);//ticks 最小值 Console.WriteLine(DateTime.MaxValue.Ticks);// ticks 最大值 } }}//在要C#中使用System.DateTime.Now.Ticks测试一项操作花的时间.//long start l = (System.DateTime.Now.Ticks - 621355968000000000) / 10000;//1970/01/01 00:00:01 到现在经过的毫秒数
示例代码2:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DateTimeTicks{ internal class Program { static void Main(string[] args) { DateTime centuryBegin = new DateTime(2000, 1, 1); DateTime currentDate = DateTime.Now; Console.WriteLine(centuryBegin); Console.WriteLine(currentDate);//系统当前时间 } }}注解
一个计时周期表示一百纳秒,即一千万分之一秒。 一毫秒内有 10,000 个时钟周期 () TicksPerMillisecond 和 1000 万个时钟周期在一秒内。
此属性的值表示公历中自公历 1 月 1 日午夜 12:00:00:00 以来经过的 100 纳秒间隔的数目,该间隔表示 MinValue。 它不包括由闰秒引起的滴答数。 如果 DateTime 对象的 Kind 属性设置为 Local,则其计时周期表示自当前时区设置指定的本地时间 0001 年 1 月 1 日午夜 12:00:00 以来经过的时间。 DateTime如果 对象的 Kind 属性设置为 Utc,则其计时周期表示自协调世界时 1 月 1 日午夜 12:00:00 以来经过的时间。0001 年 1 月 1 日。 DateTime如果 对象的 Kind 属性设置为 Unspecified,则其计时周期表示自未知时区中自 1 月 1 日午夜 12:00:00 以来经过的时间。
时间戳(timestamp)是指某个特定时间点的标识,通常以数字表示。在计算机科学和编程中,时间戳常用来记录事件的发生时间、计算时间间隔或进行时间的比较和排序。 时间戳可以是相对时间戳或绝对时间戳。相对时间戳表示一个时间点相对于另一个时间点的时间间隔,通常以毫秒或纳秒为单位。绝对时间戳是指从一个固定的参考时间点(如UNIX纪元时间,即1970年1月1日午夜)开始计算的时间间隔,通常以秒为单位。
现行公历即格里历,又译国瑞历、额我略历、格列高利历、格里高利历,称公元。是由意大利医生兼哲学家里利乌斯(Aloysius Lilius)改革儒略历制定的历法,由教皇格列高利十三世在1582年颁行.
关于历法不在本文范围,请见谅,有兴趣的可以自行查找资料。
DateTime 静态字段
字段暂时还没有写到,后面会专门写关于字段的内容,这里主要还是以DateTime类型为主的一些相关知识。
DateTime结构包括静态字段,属性和方法。
下面的示例重要的静态字段和属性代码如下:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DateTimeStaticeField{ internal class Program { static void Main(string[] args) { DateTime currentDateTime = DateTime.Now; //返回当前日期和时间 DateTime todaysDate = DateTime.Today; // 返回今天的日期 DateTime currentDateTimeUTC = DateTime.UtcNow;// 返回当前UTC日期和时间 DateTime maxDateTimeValue = DateTime.MaxValue; // 返回DateTime的最大值 DateTime minDateTimeValue = DateTime.MinValue; // 返回DateTime的最小值 Console.WriteLine(currentDateTime); Console.WriteLine(todaysDate); Console.WriteLine(currentDateTimeUTC); Console.WriteLine(maxDateTimeValue); Console.WriteLine(minDateTimeValue); } }}//可以尝试运行看看结果,每次运行的结果都会不一样的。时间跨度(TimeSpan)
TimeSpan是一种结构,用于以天,小时,分钟,秒和毫秒为单位表示时间。
结构当前还没有学到,不理解的可以跳过这个这部分,后面会专门学习结构,这里只是引出了这个概念。
示例代码:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DataTimeTimeSpan{ internal class Program { static void Main(string[] args) { DateTime dt = new DateTime(2023, 9, 7); TimeSpan ts = new TimeSpan(24, 0, 0);//24个小时,就是增加了一天时间 DateTime newDate = dt.Add(ts); Console.WriteLine(newDate);//2023/9/8 0:00:00 } }}
两个日期相减会得出TimeSpan;
示例代码:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DataTimeTimeSpan{ internal class Program { static void Main(string[] args) { DateTime dt = new DateTime(2023, 9, 7); TimeSpan ts = new TimeSpan(24, 0, 0);//24个小时,就是增加了一天时间 DateTime newDate = dt.Add(ts); Console.WriteLine(newDate);//2023/9/8 0:00:00 DateTime dt1 = new DateTime(2023, 9, 7); DateTime dt2 = new DateTime(2023, 9, 6); DateTime dt3 = new DateTime(2022,9,7); TimeSpan result = dt2.Subtract(dt1);//Subtract:减去 ,结果为-1.00:00:00 TimeSpan result2 = dt1.Subtract(dt3); Console.WriteLine(result); Console.WriteLine(result2);//365.00:00:00 } }}运算符
DateTime结构重载+,-,==!=,>,<,<=,>=运算符,简化日期的加法、减法和比较。这些使我们很容易处理日期。
示例代码:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DateTimeOperator{ internal class Program { static void Main(string[] args) { DateTime dt1 = new DateTime(2022, 12, 20); DateTime dt2 = new DateTime(2021, 12, 31, 5, 10, 20); TimeSpan time = new TimeSpan(10, 5, 25, 50); Console.WriteLine(dt2 + time); // 2022/1/10 10:36:10 Console.WriteLine(dt2 - dt1); //353.18:49:40 Console.WriteLine(dt1 == dt2); //False Console.WriteLine(dt1 != dt2); //True Console.WriteLine(dt1 > dt2); //True Console.WriteLine(dt1 < dt2); //False Console.WriteLine(dt1 >= dt2); //True Console.WriteLine(dt1 <= dt2);//False } }}
将 DateTime 转换为 String
ToString 将 DateTime 值转换为当前区域性的指定格式的字符串。ToShortDateString 将 DateTime 值转换为当前区域内的短日期字符串(M/d/yyyy 模式)。ToShortTimeString 将 DateTime 值转换为当前区域性中的短时间字符串(h: mm: ss 模式)。ToLongDateString 将 DateTime 值转换为当前区域性的长日期字符串(dddd, MMMM d, yyyy 模式)。ToLongTimeString 将 DateTime 值转换为当前区域内的长时间字符串(h:mm:ss tt 模式)
示例代码:
转换 DateTime 为不同格式的字符串
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DateTimeToString{ internal class Program { static void Main(string[] args) { var dt = DateTime.Now;//没有指定类型,前面有Var的用法 Console.WriteLine("Date String Current Culture: " + dt.ToString("d")); Console.WriteLine("MM/dd/yyyy Format: " + dt.ToString("MM/dd/yyyy")); Console.WriteLine("dddd, dd MMMM yyyy Format: " + dt.ToString("dddd, dd MMMM yyyy")); Console.WriteLine("MM/dd/yyyy h:mm tt Format: " + dt.ToString("MM/dd/yyyy h:mm tt")); Console.WriteLine("MMMM dd Format:" + dt.ToString("MMMM dd")); Console.WriteLine("HH:mm:ss Format: " + dt.ToString("HH:mm:ss")); Console.WriteLine("hh:mm tt Format: " + dt.ToString("hh:mm tt")); Console.WriteLine("Short Date String: " + dt.ToShortDateString()); Console.WriteLine("Long Date String: " + dt.ToLongDateString()); Console.WriteLine("Short Time String: " + dt.ToShortTimeString()); Console.WriteLine("Long Time String: " + dt.ToLongTimeString()); } }}//运行结果每次都会不一样的将字符串转换为DateTime
这段要是不能理解也可以跳过,但是方法很实用。
可以使用 Parse ()、 ParseExact ()、 TryParse ()和 TryParseExact ()方法,将有效的日期和时间字符串转换为 DateTime 对象。如果指定的字符串不是日期和时间的有效表示形式,Parse ()和 ParseExact ()方法将抛出异常。因此,建议使用 TryParse ()或 TryParseExact ()方法,因为如果字符串无效,它们将返回 false。
示例代码:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace StringToDateTime{ internal class Program { static void Main(string[] args) { var str = "7/9/2023";//正确示例 //var str = "32/9/2023";//错误示例不是datetime类型 DateTime dt; var isValidDate = DateTime.TryParse(str, out dt); if (isValidDate) Console.WriteLine(dt); else Console.WriteLine($"{str}不是datetime类型"); } }}// var str = "7/9/2023";//正确示例 //这两行代码可以换着注释,观察运行结果,为啥会报错 //var str = "32/9/2023";//错误示例不是datetime类型
标签: #7月份等于多少天