admin 管理员组文章数量: 887021
2024年1月14日发(作者:好程序员培训)
实例:
用户输入一个日期,要求输出这个日期是星期几和在这一年中的第几天:
//声明一个DateTime类型的变量用于存放用户输入的日期
DateTime dt;
ine("请输入日期:(例如:2000-01-01 或 2000/01/01)");
//把输入的日期字符串转换成日期格式类型
dt = (ne());
//因为DayOfWeek返回的是0、1、2、3、4、5、6,分别对应的是日、一、二、三、四、五、六
//Substring是进行检索字符串并返回匹配的指定长度的子字符串
string str = "日一二三四五六".Substring((int)eek, 1);
ine("{0}年{1}月{2}日是星期{3}", , , , str);
ine("{0}年{1}月{2}日是这一年的第{3}天", , ,
, ear);
ine("{0}是星期{1}", tDateString(), str);
ine("{0}是这一年的第{1}天", DateString(),
ear);
上述代码运行的结果如下
显示当前时期和时间的不同合格:
//以不同的格式显示当天日期和时间
ine("现在时间是:{0}", ng("yyyy-M-d
H:m:s"));
ine("现在时间是:{0}", ng("yyyy-MM-dd
HH:mm:ss"));
ine("现在时间是:{0}",
ng("yyyy-MM-dd"));
ine("短日期字符串表示现在时间是:{0}",
tDateString());
ine("长日期字符串表示现在时间是:{0}",
DateString ());
上述代码的运行结果如下
日期类型(DateTime)格式化
方法一:
使用ng(format, antInfo)
示例代码:
DateTime
dt = ;
ng("M/d/yyyy");
参数format格式详细用法:
格式字符关联属性/说明
d ShortDatePattern
D LongDatePattern
f 完整日期和时间(长日期和短时间)
F FullDateTimePattern(长日期和长时间)
g 常规(短日期和短时间)
G 常规(短日期和长时间)
m、M MonthDayPattern
r、R RFC1123Pattern
s 使用当地时间的 SortableDateTimePattern(基于 ISO 8601)
t ShortTimePattern
T LongTimePattern
u UniversalSortableDateTimePattern 用于显示通用时间的格式
U 使用通用时间的完整日期和时间(长日期和长时间)
y、Y YearMonthPattern
下面列出可被合并以构造自定义模式的模式:
d 月中的某一天。一位数的日期没有前导零。
dd 月中的某一天。一位数的日期有一个前导零。
ddd 周中某天的缩写名称,在 AbbreviatedDayNames 中定义。
dddd 周中某天的完整名称,在 DayNames 中定义。
M 月份数字。一位数的月份没有前导零。
MM 月份数字。一位数的月份有一个前导零。
MMM 月份的缩写名称,在 AbbreviatedMonthNames 中定义。
MMMM 月份的完整名称,在 MonthNames 中定义。
y 不包含纪元的年份。如果不包含纪元的年份小于 10,则显示不具有前导零的年份。
yy 不包含纪元的年份。如果不包含纪元的年份小于 10,则显示具有前导零的年份。
yyyy 包括纪元的四位数的年份。
gg 时期或纪元。如果要设置格式的日期不具有关联的时期或纪元字符串,则忽略该模式。
h 12 小时制的小时。一位数的小时数没有前导零。
hh 12 小时制的小时。一位数的小时数有前导零。
H 24 小时制的小时。一位数的小时数没有前导零。
HH 24 小时制的小时。一位数的小时数有前导零。
m 分钟。一位数的分钟数没有前导零。
mm 分钟。一位数的分钟数有一个前导零。
s 秒。一位数的秒数没有前导零。
ss 秒。一位数的秒数有一个前导零。
f 秒的小数精度为一位。其余数字被截断。
ff 秒的小数精度为两位。其余数字被截断。
fff 秒的小数精度为三位。其余数字被截断。
ffff 秒的小数精度为四位。其余数字被截断。
fffff 秒的小数精度为五位。其余数字被截断。
ffffff 秒的小数精度为六位。其余数字被截断。
fffffff 秒的小数精度为七位。其余数字被截断。
t 在 AMDesignator 或 PMDesignator 中定义的 AM/PM 指示项的第一个字符(如果存在)。
tt 在 AMDesignator 或 PMDesignator 中定义的 AM/PM 指示项(如果存在)。
z 时区偏移量(“+”或“-”后面仅跟小时)。一位数的小时数没有前导零。例如,太平洋标准时间是“-8”。
zz 时区偏移量(“+”或“-”后面仅跟小时)。一位数的小时数有前导零。例如,太平洋标准时间是“-08”。
zzz 完整时区偏移量(“+”或“-”后面跟有小时和分钟)。一位数的小时数和分钟数有前导零。例如,太平洋标准时间是“-08:00”。
: 在 TimeSeparator 中定义的默认时间分隔符。
/ 在 DateSeparator 中定义的默认日期分隔符。
% c 其中 c 是格式模式(如果单独使用)。如果格式模式与原义字符或其他格式模式合并,则可以省略“%”字符。
c 其中 c 是任意字符。照原义显示字符。若要显示反斜杠字符,请使用“”。
方法二:
DateTimedt = ;
= ng();//2005-11-5 13:21:25
= lTime().ToString();//2005-11-5 21:21:25 =
DateString().ToString();//2005年11月5日 =
TimeString().ToString();//13:21:25
ng();//2005-11-5 13:21:25
Time().ToString();//9912816
TimeUtc().ToString();//1277567
lTime().ToString();//2005-11-5 21:21:25
DateString().ToString();//2005年11月5日
TimeString().ToString();//13:21:25
te().ToString();//38661.5565508218
tDateString().ToString();//2005-11-5
tTimeString().ToString();//13:21
ersalTime().ToString();//2005-11-5 5:21:25
ng();//2005
ng();//2005-11-5 0:00:00
ng();//Saturday
ng();//309
ng();//13
ng();//441
ng();//30
ng();//11
ng();//28
ng();//632667942284412864
ng();//13:30:28.4412864
ng();//2005-11-5 13:47:04
rs(1).ToString();//2006-11-5 13:47:04
s(1.1).ToString();//2005-11-6 16:11:04
rs(1.1).ToString();//2005-11-5 14:53:04
liseconds(1.1).ToString();//2005-11-5 13:47:04
ths(1).ToString();//2005-12-5 13:47:04
onds(1.1).ToString();//2005-11-5 13:47:05
utes(1.1).ToString();//2005-11-5 13:48:10
ks(1000).ToString();//2005-11-5 13:47:04
eTo(dt).ToString();//0
(?).ToString();//问号为一个时间段
("2005-11-6 16:11:04").ToString();//False
(dt).ToString();//True
hCode().ToString();//1474088234
e().ToString();//me
eCode().ToString();//DateTime
eTimeFormats('s')[0].ToString();//2005-11-05T14:06:25
eTimeFormats('t')[0].ToString();//14:06
eTimeFormats('y')[0].ToString();//2005年11月
eTimeFormats('D')[0].ToString();//2005年11月5日
eTimeFormats('D')[1].ToString();//2005 11 05
eTimeFormats('D')[2].ToString();//星期六2005 11 05
eTimeFormats('D')[3].ToString();//星期六2005年11月5日
eTimeFormats('M')[0].ToString();//11月5日
eTimeFormats('f')[0].ToString();//2005年11月5
datetime 操作
//今天
tDateString();
//昨天,就是今天的日期减一
s(-1).ToShortDateString();
//明天,同理,加一
s(1).ToShortDateString();
//本周(要知道本周的第一天就得先知道今天是星期几,从而得知本周的第一天就是几天前的那一天,要注意的是这里的每一周是从周日始至周六止
s(le((0 -
16(eek)))).ToShortDateString();
s(le((6 -
16(eek)))).ToShortDateString();
//如果你还不明白,再看一下中文显示星期几的方法就应该懂了
//由于DayOfWeek返回的是数字的星期几,我们要把它转换成汉字方便我们阅读,有些人可能会用switch来一个一个地对照,其实不用那么麻烦的
string[] Day = new string[]{ "星期日", "星期一", "星期二", "星期三", "星期四", "星期五",
"星期六" };
Day[16(eek)];
//上周,同理,一个周是7天,上周就是本周再减去7天,下周也是一样
s(le((0 -
16(eek))) - 7).ToShortDateString();
s(le((6 -
16(eek))) - 7).ToShortDateString();
//下周
s(le((0 -
16(eek))) + 7).ToShortDateString();
s(le((6 -
16(eek))) + 7).ToShortDateString();
//本月,很多人都会说本月的第一天嘛肯定是1号,最后一天就是下个月一号再减一天。当然这是对的
//一般的写法
ng() + ng() + "1"; //第一天
(ng() + ng() +
"1").AddMonths(1).AddDays(-1).ToShortDateString();//最后一天
//巧用C#里ToString的字符格式化更简便
ng("yyyy-MM-01");
(ng("yyyy-MM-01")).AddMonths(1).AddDays(-1).ToShortDateString();
//上个月,减去一个月份
(ng("yyyy-MM-01")).AddMonths(-1).ToShortDateString();
(ng("yyyy-MM-01")).AddDays(-1).ToShortDateString();
//下个月,加去一个月份
(ng("yyyy-MM-01")).AddMonths(1).ToShortDateString();
(ng("yyyy-MM-01")).AddMonths(2).AddDays(-1).ToShortDateString();
//7天后
tDateString();
s(7).ToShortDateString();
//7天前
s(-7).ToShortDateString();
tDateString();
//本年度,用ToString的字符格式化我们也很容易地算出本年度的第一天和最后一天
(ng("yyyy-01-01")).ToShortDateString();
(ng("yyyy-01-01")).AddYears(1).AddDays(-1).ToShortDateString();
//上年度,不用再解释了吧
(ng("yyyy-01-01")).AddYears(-1).ToShortDateString();
(ng("yyyy-01-01")).AddDays(-1).ToShortDateString();
//下年度
(ng("yyyy-01-01")).AddYears(1).ToShortDateString();
(ng("yyyy-01-01")).AddYears(2).AddDays(-1).ToShortDateString();
//本季度,很多人都会觉得这里难点,需要写个长长的过程来判断。其实不用的,我们都知道一年四个季度,一个季度三个月
//首先我们先把日期推到本季度第一个月,然后这个月的第一天就是本季度的第一天了
ths(0 - (( - 1) %
3)).ToString("yyyy-MM-01");
//同理,本季度的最后一天就是下季度的第一天减一
(ths(3 - (( - 1) %
3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();
//下季度,相信你们都知道了。。。。收工
ths(3 - (( - 1) %
3)).ToString("yyyy-MM-01");
(ths(6 - (( - 1) %
3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();
//上季度
ths(-3 - (( - 1) %
3)).ToString("yyyy-MM-01");
(ths(0 - (( - 1) %
3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();
版权声明:本文标题:DateTime 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1705229645h477790.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论