C# 获取时间段的方法

C# 获取时间段的方法。

    最基本的是获取当前的时间:DateTime.Now,该DateTime.Now记录当前的时间为年月日-时分秒-毫秒,可以使用ToString()指定输入的格式,比如说长时间、短时间、只显示年月日等。

   其实计算其他时间都可以用基于DateTime.Now来,对年月日、时分秒分别进行加或者减的操作,可以计算当前时间前的时间段以及当前时间之后的时间段。

**************************************************************************************************************

当前时间、今天、昨天时间段获取示例

// 当前时间
DateTime dt = DateTime.Now;

//指定输出格式
string time24 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); //24小时制 
string time12 = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"); //12小时制  

// 今天开始,0时0分0秒
DateTime startToday = Convert.ToDateTime(DateTime.Now.ToString("D").ToString());

// 今天结束,23时59分59秒
DateTime endToday = Convert.ToDateTime(DateTime.Now.AddDays(1).ToString("D").ToString()).AddSeconds(-1);
DateTime endToday2 = DateTime.Now.Date.AddDays(1).AddSeconds(-1);
DateTime endToday3 = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 59, 59);

// 昨天开始
DateTime startLastDay = DateTime.Now.AddDays(-1).Date;

// 昨天结束
DateTime endLastDay = startLastDay.AddDays(1).AddSeconds(-1);

周时间段获取

// 今天星期几
int whatDayOfWeek = Convert.ToInt32(DateTime.Now.DayOfWeek.ToString("d"));

// 本周周一
DateTime startOfWeek = DateTime.Now.AddDays(1 - ((whatDayOfWeek == 0) ? 7 : whatDayOfWeek)).Date;

// 本周周日
DateTime endOfWeek = startOfWeek.AddDays(7).AddSeconds(-1);

// 上周周一
DateTime startLastWeek = startOfWeek.AddDays(-7).Date;

// 上周周日
DateTime endLastWeek = startLastWeek.AddDays(7).AddSeconds(-1);

月时间段获取

//本月月初 
DateTime startOfMonth = DateTime.Now.AddDays(1 - DateTime.Now.Day).Date;

//本月月末
DateTime endOfMonth = DateTime.Now.AddDays(1 - DateTime.Now.Day).Date.AddMonths(1).AddSeconds(-1);
DateTime endOfMonth2 = startOfMonth.AddDays((dt.AddMonths(1) - dt).Days - 1);  //dt:当天时间

// 上月月初
DateTime startLastMonth = DateTime.Now.AddMonths(-1).Date.AddDays(1 - DateTime.Now.Day);

//上月月末
DateTime endLastMonth = DateTime.Parse(DateTime.Now.AddDays(1 - DateTime.Now.Day).ToShortDateString()).AddSeconds(-1);

季度时间段

//本季度初  
DateTime startOfQuarter = DateTime.Now.AddMonths(0 - (DateTime.Now.Month - 1) % 3).AddDays(1 - DateTime.Now.Day).Date;

//本季度末 
DateTime endOfQuarter = startOfQuarter.AddMonths(3).AddSeconds(-1);

// 上季度初
DateTime startLastQuarter = startOfQuarter.AddMonths(-3).Date;

// 上季度末
DateTime endLastQuarter = startLastQuarter.AddMonths(3).AddSeconds(-1);

年时间段

//本年年初 
DateTime startOfYear = new DateTime(DateTime.Now.Year, 1, 1).Date; 

//本年年末
DateTime endOfYear = new DateTime(DateTime.Now.Year, 12, 31, 23, 59, 59); 

// 去年年初
DateTime startLastYear = startOfYear.AddYears(-1).Date;

//去年年末
DateTime endLastYear = endOfYear.AddYears(-1);

**************************************************************************************************************

    只要合理组合使用AddDays()、AddMonths()、AddYears()这些函数,就可以获取昨天、明天、上周、上月、上季度、上年度等等的时间。

**************************************************************************************************************

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值