项目需求:

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

最新文章

  1. Python进阶【第二篇】多线程、消息队列queue
  2. DOM_01之树及遍历
  3. 【项目经验】EasyUI Tree
  4. iOS开发-UITableView顶部图片下拉放大
  5. linux 查找php.ini 文件
  6. WinAPI你知道多少?!(上千个,好多都没见过)
  7. js中对象的创建
  8. Jquery Datatables(三)
  9. Android SDK与API版本的对应关系
  10. 多线程之join方法
  11. drbd(三):drbd的状态说明
  12. python2和python3关于列表推导的差别
  13. ES学习之分片路由
  14. Nginx系列3:用Nginx搭建一个具备缓存功能的反向代理服务
  15. 14)django-模板(计数器)
  16. sublime text3怎么安装Package Control
  17. 不用修改 hosts 本地开发(续篇)
  18. MySQL数据库Innodb储存引擎----储存页的结构
  19. MySQL数据库基准压力测试工具之MySQLSlap使用实例
  20. Hibernate学习5—Hibernate操作对象2

热门文章

  1. Android调用微信登陆、分享、支付
  2. 如何在网页中提取Email地址
  3. Velocity初探小结--velocity使用语法详解
  4. 前端性能优化的另一种方式——HTTP2.0
  5. js attribute 和 jquery attr 方法
  6. CentOS 7 安装出现 /dev/root does not exits 导致无法安装的问题
  7. Linux实战教学笔记02:计算机系统硬件核心知识
  8. [jquery]显示隐藏div标签的几种方法
  9. 使用LogMaster4Net实现应用程序日志的集中管理
  10. 让OMCS支持更多的视频采集设备