你的位置:首页 > ASP.net教程

[ASP.net教程]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);    }

图片:

image

 

image


 

       利用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);    }