3.2.5 DateTime
日期和时间(DateTime)类型,用于在程序中存储日期和时间信息。当程序中需要保存一个日期类型或时间类型的信息时,都可以用DateTime类型,例如员工的入职日期、当前时间等。
通过学习本章前面的知识,我们已经知道DateTime类型不在Variables面板的Variable type的下拉列表中,在Browse and Select a .Net Type窗口中的系统命名空间System.DateTime下可以找到。
DateTime类型的值是由多个属性组成的。
□Year:指日期的年份。
□Month:指日期的月份。
□Day:指日期的日。
□Hour:指日期的小时。
□Minute:指日期的分钟。
□Second:指日期的秒钟。
□Millisecond:指日期的毫秒数。
在实际项目中,我们经常会需要将DateTime类型和String类型的数据互相转换。将String类型转换成DateTime类型时,一般可以使用DateTime.Parse("日期"),例如DateTime.Parse("2020-1-20 20:15:06")或者DateTime.Parse("2020-1-20");而在将DateTime类型转换成String类型时,可以使用ToString()方法,它会把日期转换成操作系统默认的日期时间类型。我们也可以指定DateTime类型的数据转换成String类型后的格式,转换的方法如下所示。
□ToString("日期格式"):通过这种方法可以非常自由地将转换后的日期设置为我们希望的格式。在日期格式中,小写y代表年,大写M代表月,小写d代表天,大写H代表小时,小写m代表分钟,小写s代表秒,小写f代表毫秒。其中字母位数也可以自由设定,不同位数代表转换成不同格式,例如代表月份的M可以有M:2、MM:02、MMM:Feb、MMMM:February等不同格式。举个例子来说,我们可以写成Now.ToString("yyyy-MM-dd HH:mm:ss fff"),也可以只取任何一部分,如获取小时数为Now.ToString("HH")或者Now.ToString("H")。
□ToLongDateString():将日期转换成长日期格式,如Thurday, 24 December 2020。
□ToShortDateString():将日期转换成短日期格式,如12/24/2020。
□ToLongTimeString():将日期转换成长时间格式,如20:00:00。
□ToShortTimeString():将日期转换成短时间格式,如20:00。
除此之外,我们还经常用到一些DateTime类型数据的处理方法。
□Add:表示增减一个时间间隔,如Now.Add(new TimeSpan(1,2,3,4))表示当前时间增加一天二小时三分钟四秒。
□AddYears:表示增减年数,如Now.AddYears(-1)表示当前时间减一年。
□AddMonths:表示增减月份,如Now.AddMonths(2)表示当前时间增加两个月。
□AddDays:表示增减天数,如Now.AddDays(-3)表示当前时间减3天。
□AddHours:表示增减小时数,如Now.AddHours(-12)表示当前时间减12小时。
□AddMinutes:表示增减分钟数,如Now.AddMinutes(30)表示当前时间增加30分钟。
□AddMilliseconds:表示增减毫秒数,如Now.AddMilliseconds(600)表示当前时间增加600毫秒。
图3-90 流程图
□CompareTo:表示前面的日期与后面的日期比较,如果大于0表示前者比后者大,如果等于0则表示前者与后者一样大,如果小于0则表示前者比后者小,如Now.AddDays(2).CompareTo(Now)的结果大于0。
【例3.10】使用DateTime变量完成打印指定日期的流程。假设存在一个日期2021-3-30,取得该日期一周前的日期,并在Output面板输出。流程图如图3-90所示。
具体实现步骤如下所示。
1)进入Studio界面,点击Process创建一个新流程,命名为3_10_DateTime,如图3-91所示。
图3-91 新建流程
2)拖入一个Sequence活动到设计器面板。在Properties面板中,将Sequence活动的DisplayName属性更改为“取得日期”,如图3-92所示。
图3-92 拖入Sequence活动并更改属性
3)在Variables面板中,创建变量LastWeekDate,用于存储指定日期前一周的日期,如图3-93所示。
图3-93 创建变量
4)参照例3.5中的第6步和第7步,将变量LastWeekDate更改为DateTime型,如图3-94所示。
图3-94 更改变量类型
5)拖入一个Assign活动到“取得日期”活动中。在Properties面板中,将Display-Name属性更改为“取得指定日期前一周的日期”,在To属性中输入变量LastWeekDate,在Value属性中输入DateTime.Parse("2021-3-30").AddDays(-7),如图3-95所示。
图3-95 取得指定日期前一周的日期
6)拖入一个Write Line活动到“取得日期”活动中。在Properties面板中,将DisplayName属性更改为“输出指定日期前一周的日期”,将Text属性更改为LastWeek-Date.ToShortDateString,如图3-96所示。
图3-96 输出指定日期前一周的日期
7)按F5键执行流程,将在Output面板中显示执行结果,如图3-97所示。
图3-97 执行结果