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

Posted —阿辉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
        }

以上是关于C#得到某月最后一天晚上23:59:59和某月第一天00:00:00的主要内容,如果未能解决你的问题,请参考以下文章

如何使用js获取某月的第一天和最后一天

text 获取某年某月的最后一天和第一天

java 获取某年某月的最后一天和第一天

sql如何取某年某月的第一天和最后一天

c# datetime 怎么样获取 某月的最后一天的日期

PHP 某年某月的最后一天