项目需求:

某学校订单截止操作时间的上一个月最后一天晚上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);
}

图片:

 

利用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的更多相关文章

  1. java 根据传入的时间获取当前月的第一天的0点0分0秒和最后一天的23点59分59秒

    /** * 获取指定日期所在月份开始的时间 * lkeji * @return */ public static String getMonthBegin(String specifiedDay) { ...

  2. C#获取上个月的第一天零点和最后一天23点59分59秒

    //上个月第一天0点 DateTime date2 = DateTime.Now.AddMonths(-1).Date.AddDays(1 - DateTime.Now.Day);         R ...

  3. 2015微软创新杯Imaginecup正在进行参赛(报名截止日期2014年12月31日本23:59)

    CSDN高校俱乐部与微软官方合作,2015微软创新杯大赛中国区官网落户CSDN高校俱乐部:http://student.csdn.net/mcs/imaginecup2015 在微软官方设置创新杯中国 ...

  4. RobotFramework:查询条件为最近一个月的数据(2019-07-09 00:00:00.000 到 2019-08-07 23:59:59.999)

    自动化测试中遇到,默认查询条件为最近一个月,所以起始时间就应该为(2019-07-09 00:00:00.000 到  2019-08-07 23:59:59.999) test ${current_ ...

  5. SQL Server 获取最后一天(指定时间的月最后一天日期)

    /* author OceanHo @ 2015-10-23 10:14:21 获取指定时间字符串指定日期的月最后一天日期 */ IF OBJECT_ID('get_LastDayDate') IS ...

  6. MSSQL 获取指定日期所在星期的第一天和最后一天日期 获取指定日期坐在月的第一天和最后一天

    ufn_GetWeekFirstAndEndDay    获取指定日期所在星期的第一天和最后一天日期 ALTER FUNCTION [dbo].[ufn_GetWeekFirstAndEndDay]( ...

  7. 1 时间戳 2 C# 如何生成一个时间戳 3 js 时间加一分钟... 4 js string->date 5 js 取得当天0点 / 23:59:59 时间

    var str = 'Jan 23, 2019 10:25:47 AM';var strnow = new Date(str); 时间戳(timestamp),一个能表示一份数据在某个特定时间之前已经 ...

  8. C# 获取某个时间的0点0分和23点59分59秒

    C#获取当月第一天和最后一天 当月第一天0时0分0秒: DateTime.Now.AddDays( - DateTime.Now.Day).Date 当月最后一天23时59分59秒: DateTime ...

  9. [网站公告]3月10日23:00-4:00阿里云SLB升级,会有4-8次连接闪断

    大家好,阿里云将于3月10日23:00-4:00对负载均衡服务(SLB)做升级操作,升级期间SLB网络连接会有约4-8次闪断.由此给您带来麻烦,敬请谅解! 阿里云SLB升级公告内容如下: 尊敬的用户: ...

随机推荐

  1. 【翻译】MongoDB指南/聚合——聚合管道

    [原文地址]https://docs.mongodb.com/manual/ 聚合 聚合操作处理数据记录并返回计算后的结果.聚合操作将多个文档分组,并能对已分组的数据执行一系列操作而返回单一结果.Mo ...

  2. EntityFramework之DetectChanges's Secrets(三)(我为EF正名)

    前言 对于应用程序开发者来说,通常不需要考虑太多对于Entity Framework中的变更追踪(change tracking),但是变更追踪和DetectChanges方法是栈的一部分,在这其中, ...

  3. $ORACLE_HOME变量值末尾多“/”惹的祸

    之前一直误以为$ORACLE_HOME变量的路径中末尾多写一个"/"不会有影响. 今天做实验时碰到一个情景,发现并不是这样. 环境:OEL 5.7 + Oracle 10.2.0. ...

  4. PHP相关代码

    1 <html>  <head>       <meta http-equiv="content-type" content="text/h ...

  5. JavaScript知识结构图

    画的一个知识结构图,方便理解.

  6. css 填坑常用代码分享

    以下是常用的代码收集,没有任何技术含量,只是填坑的积累.转载请注明出处,谢谢. 因为提交比较麻烦,后来转置github:https://github.com/jsfront/src/blob/mast ...

  7. H5嵌入原生开发小结----兼容安卓与ios的填坑之路

    一开始听说开发H5,以为就是做适配现代浏览器的移动网页,心想不用管IE了,欧也.到今天,发现当初too young too simple,兼容IE和兼容安卓与IOS,后者让你更抓狂.接下来数一下踩过的 ...

  8. Android开发之Android Material Design Toolbar自定义随笔

    一.自定义Toolbar的menu: 在menu下新建menu.xml文件,自定义menu的样式: <menu xmlns:android="http://schemas.androi ...

  9. python 学习总结

    背景:本文类似文章的目录部分,以系统学习python 新知识和复习总结用 摘要: python 基本语法 numpy库 matplotlib绘图库 pandas库 scikit-learn 机器学习库 ...

  10. web标准之道——笔记

    字体设置 sans和sans-serif为通用字体,具体哪个字体被最终应用由浏览器决定,通用字体只有在其他字体都无效时才会被当作代替方案.通用字体应该放在最后面 sans衬线字体 容易阅读,一般使用在 ...