C#得到某月最后一天晚上23:59:59和某月第一天00:00:00

简介: C#得到某月最后一天晚上23:59:59和某月第一天00:00:00

项目需求:


      某学校订单

截止操作时间的上一个月最后一天晚上23:59:59 为止所有支付的订单统计;

代码:


/// <summary>
/// 通过学校和截止时间得到订单
/// </summary>
/// <param name="pageIndex">页个数</param>
/// <param name="pageSize">页面积</param>
/// <param name="schoolId">学校ID</param>
/// <param name="orderSettlementEndTime">截止时间</param>
/// <returns></returns>
public PagedList<Order> GetOrderBySchoolAndEndTime(int pageIndex,int pageSize,Guid? schoolId, DateTime? orderSettlementEndTime)
{
    var query = this.Table;
    if (schoolId.HasValue)
    {
        query = query.Where(x => x.SchoolId == schoolId);
    }
    if (orderSettlementEndTime.HasValue)
    {
        //本月的最后一天
        var endMonth = DateTime.Parse(
            orderSettlementEndTime.Value.AddDays(1 - orderSettlementEndTime.Value.Day)
                .AddMonths(1)
                .AddDays(-1)
                .ToString());
        //上月的最后一天
        var startMonth =
            DateTime.Parse(
                orderSettlementEndTime.Value.AddDays(1 - orderSettlementEndTime.Value.Day)
                .AddSeconds(-1).ToString());
        query = query.Where(x => x.CreateTime >= startMonth&&x.CreateTime<endMonth);
    }
    return query.Where(x => x.PaymentState == PaymentState.支付完成)
        .OrderBy(x=>x.Id)
        .ToPagedList(pageIndex,pageSize);
}


图片:



679140-20160917145112273-1711924999.png


679140-20160917145113633-1897389828.png



 利用DateTime.Parse();将string类型的时间转换为datetime类型,我们看一下后面的代

码,是将时间手动的设置为我们需要的时间。




DateTime today12hours = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd 12:00:00"));


这样我们设置了值。


封装取时间的方法


/// <summary>
/// 某月的最后一天
/// </summary>
/// <param name="datetime"></param>
/// <returns></returns>
public DateTime FirstDayOfMonth(DateTime datetime)
{
    return datetime.AddDays(1 - datetime.Day).AddMonths(1).AddDays(-1);
}
/// <summary>
/// 前一月的最后一天
/// </summary>
/// <param name="datetime"></param>
/// <returns></returns>
public DateTime LastDayOfMonth(DateTime datetime)
{
    return datetime.AddDays(1 - datetime.Day).AddSeconds(-1);
}
/// <summary>
/// 某月的第一天
/// </summary>
/// <param name="datetime"></param>
/// <returns></returns>
public DateTime FirstDayOfMonthMethod(DateTime datetime)
{
    return datetime.AddDays(1 - datetime.Day);
}
/// <summary>
/// 上一月的第一天
/// </summary>
/// <param name="datetime"></param>
/// <returns></returns>
public DateTime FirstDayOfUpMouth(DateTime datetime)
{
    return datetime.AddDays(1 - datetime.Day).AddMonths(-1);
}
/// <summary>
/// 取得上个月的最后一天
/// </summary>
/// <param name="datetime"></param>
/// <returns></returns>
public DateTime LastDayOfOnMouth(DateTime datetime)
{
    return datetime.AddDays(1 - datetime.Day).AddDays(-1);
}




目录
相关文章
SqlServer 获取工作日(周六、周日休息,周六日不休息,周六不休息)
SqlServer 获取工作日(周六、周日休息,周六日不休息,周六不休息)
176 0
|
缓存 NoSQL Linux
那天晚上,他真的好快!
那天晚上,他真的好快!
199 0
第一天
视觉生成技术定义与分类;理解视觉生成;视觉编辑、增强、制造;以及视觉开放平台。
第一天
|
弹性计算 Linux 网络安全
打卡第一天
怎么搭建FTP服务器(Win10系统)自己动手很重要!!!
568 0
打卡第一天
2018-05-07 第一天
说在前面 1:坚持。 学生:学习贵不贵?  老师:贵!!!  学生:哪里贵?  老师:贵在坚持。 2:读书之道:熟读而精思。 3:兴趣的三个层次: a:兴趣:对未知的事务的好奇心所引发的探索的欲望。 b:乐趣:在学习的过程中有了成就感,而引发的对事务的更深层次的了解的欲望。
1142 0
|
新零售 算法 Java
一周总结(2018-03-19)
忙着学习之前先停下来思考上周做了那些,有很多值得回忆与记录的地方,相比之前,一些变化。 上周 学习了《从0到1,设计电商平台-服务端》,《秒杀系统设计》,这两个是付费课程,不过总体来说都有收获。
978 0
|
Spring Java
一周总结(七)
新的一周,到写东西的时候,心里有种淡淡的忧伤,没有输入,当回想自己做了什么的时候,又觉得时间浪费的很厉害。 每天8点前到公司,晚上11点回宿舍,一天工作10个小时以上。
770 0