C#里巧用DateTime预设一些可选的日期范围(如本年度、本季度、本月等)
//大家在做报表或查询的时候都会有给用户预设一些可选的日期范围(如上图)
//如本年度销售额、本季度利润、本月新增客户
//C#里内置的DateTime基本上都可以实现这些功能,巧用DateTime会使你处理这些事来变轻松多了
//今天
DateTime.Now.Date.ToShortDateString();
//昨天,就是今天的日期减一
DateTime.Now.AddDays(-1).ToShortDateString();
//明天,同理,加一
DateTime.Now.AddDays(1).ToShortDateString();
//本周(要知道本周的第一天就得先知道今天是星期几,从而得知本周的第一天就是几天前的那一天,要注意的是这里的每一周是从周日始至周六止
DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOfWeek)))).ToShortDateString();
DateTime.Now.AddDays(Convert.ToDouble((6 - Convert.ToInt16(DateTime.Now.DayOfWeek)))).ToShortDateString();
//如果你还不明白,再看一下中文显示星期几的方法就应该懂了
//由于DayOfWeek返回的是数字的星期几,我们要把它转换成汉字方便我们阅读,有些人可能会用switch来一个一个地对照,其实不用那么麻烦的
string[] Day = new string[] { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
Day[Convert.ToInt16(DateTime.Now.DayOfWeek)];
//上周,同理,一个周是7天,上周就是本周再减去7天,下周也是一样
DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOfWeek))) - 7).ToShortDateString();
DateTime.Now.AddDays(Convert.ToDouble((6 - Convert.ToInt16(DateTime.Now.DayOfWeek))) - 7).ToShortDateString();
//下周
DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOfWeek))) + 7).ToShortDateString();
DateTime.Now.AddDays(Convert.ToDouble((6 - Convert.ToInt16(DateTime.Now.DayOfWeek))) + 7).ToShortDateString();
//本月,很多人都会说本月的第一天嘛肯定是1号,最后一天就是下个月一号再减一天。当然这是对的
//一般的写法
DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + "1"; //第一天
DateTime.Parse(DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + "1").AddMonths(1).AddDays(-1).ToShortDateString();//最后一天
//巧用C#里ToString的字符格式化更简便
DateTime.Now.ToString("yyyy-MM-01");
DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(1).AddDays(-1).ToShortDateString();
//上个月,减去一个月份
DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(-1).ToShortDateString();
DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();
//下个月,加去一个月份
DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(1).ToShortDateString();
DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(2).AddDays(-1).ToShortDateString();
//7天后
DateTime.Now.Date.ToShortDateString();
DateTime.Now.AddDays(7).ToShortDateString();
//7天前
DateTime.Now.AddDays(-7).ToShortDateString();
DateTime.Now.Date.ToShortDateString();
//本年度,用ToString的字符格式化我们也很容易地算出本年度的第一天和最后一天
DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).ToShortDateString();
DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(1).AddDays(-1).ToShortDateString();
//上年度,不用再解释了吧
DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(-1).ToShortDateString();
DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddDays(-1).ToShortDateString();
//下年度
DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(1).ToShortDateString();
DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(2).AddDays(-1).ToShortDateString();
//本季度,很多人都会觉得这里难点,需要写个长长的过程来判断。其实不用的,我们都知道一年四个季度,一个季度三个月
//首先我们先把日期推到本季度第一个月,然后这个月的第一天就是本季度的第一天了
DateTime.Now.AddMonths(0 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01");
//同理,本季度的最后一天就是下季度的第一天减一
DateTime.Parse(DateTime.Now.AddMonths(3 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();
//下季度,相信你们都知道了。。。。收工
DateTime.Now.AddMonths(3 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01");
DateTime.Parse(DateTime.Now.AddMonths(6 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();
//上季度
DateTime.Now.AddMonths(-3 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01");
DateTime.Parse(DateTime.Now.AddMonths(0 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();
转载于:https://www.cnblogs.com/liyuxin/archive/2011/09/09/2172204.html
C#里巧用DateTime预设一些可选的日期范围(如本年度、本季度、本月等)相关推荐
- C#中用DateTime的ParseExact方法解析日期时间(excel中使用系统默认的日期格式)
最近做的项目中服务器是英文的系统,系统需要通过excel的单元格导入日期,excel中的日期格式是系统默认的日期格式,如下图所示 以上日期格式,会跟着操作系统设置的日期格式相同例如我的中文系统的日期格 ...
- python datetime 加一个月_Python日期的加减等操作的示例
本文介绍了Python日期的加减等操作的示例,分享给大家,也给自己留个笔记 1. 日期输出格式化 所有日期.时间的api都在datetime模块内. 1. datetime => string ...
- sql server中datetime默认值设置和日期函数
sql server中datetime默认值设置和日期函数 select CONVERT(varchar, getdate(), 120 ) -----------------> ...
- 【Salesforce】巧用公式字段及标准函数解决日期间隔业务需求
巧用公式字段及标准函数解决日期间隔业务需求 文章目录 巧用公式字段及标准函数解决日期间隔业务需求 业务场景 公式字段特点 使用Salesforce提供的方法构建公式 判断是否达到一季度 判断有没有多余 ...
- Excel表格里的数据全部变成了时间或者日期格式的时候怎么办???
Excel表格里的数据全部变成了时间或者日期格式的时候怎么办??? 1. 打开Excel,任意选中一单元格,单击鼠标右键,选择设置单元格格式. 2. 在数字自定义类型中,找到如图中前缀为[$-F400 ...
- mysql查询datetime的年月日_mysql 里面的date datetime怎么才能只取年月日
数据按照年月日分组 mysql按年月日分组统计的查询 SELECT DATE_FORMAT( `report_date`, "%Y-%m-%d" ) DATE_1, COUNT( ...
- 【转载】Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码
本文转载自脚本之家,源网址为:https://www.jb51.net/article/147429.htm 一.Python中日期时间模块datetime介绍 (一).datetime模块中包含如下 ...
- 将一个datetime的now转换为只有日期的_不要眨眼!中英文、大小写转换,一秒就搞定!
私信回复关键词[福利],获取丰富办公资源~ 助你高效办公早下班! 大家好,我是秋小 E~这里是秋叶 Excel 的[问答精华]专栏! 问题主要来自秋叶 Excel 学习班的同学,回答由讲师.助教共同完 ...
- asp 之 让实体中字段类型为DateTime的字段仅仅显示日期不显示时间
在我们平时的工作开发中.我们一般会遇到这种一个问题:某个实体的某个字段是DateTime类型的,但是我们在界面上仅仅想让它显示日期不显示时间! 一个订单实体: //订单类public c ...
最新文章
- 操作系统导论部分章节习题
- Android5.1.1源码 - 让某个APP以解释执行模式运行
- Java生鲜电商平台-订单中心服务架构与异常订单逻辑
- 成年人的样子是什么样子_不只是看样子
- waitpid()函数
- 《面向模式的软件体系结构2-用于并发和网络化对象模式》读书笔记(13)--- 线程安全接口和双检查加锁优化...
- python递归 数字全排列_利用递归实现全排列(python)
- new出来的对象怎么回收_JVM的内存模型及垃圾回收算法
- SQL server 第三方驱动 JDTS
- 中心极限与大数定理律的关系_中心极限定理的最最通俗解释
- Golang 大杀器之性能剖析 PProf
- LoadRunner正确的登录压力测试方法实战
- 快狗打车正式登陆港交所,“更美好,更绿色”的同城货运平台来了!
- 零基础应如何学习UI设计
- Cesium开发:简单箭头画法
- java对接ntlm_通过NTLM获取信息.
- 让玩家提升游戏耐玩度的8个小技巧
- ttbf 慢 php,連接數據庫不同方式會影響TTBF快慢
- 回测好,为什么实盘不靠谱?
- CP速配app v2.0.8.2
热门文章
- codis配置_codis 源码理解
- burg算法的matlab代码实现_导向滤波算法及其matlab代码实现
- html5 js选择器,使用HTML5的JS选择器操作页面中的元素
- typora居中_Windows系统下Typora的安装和语法
- matlab xlsread参数_利用MATLAB批量完成科研数据处理
- kingcms php 排序 标签,修改PHPCMS V9列表排序,listorder、order排序功能的方法
- python读取usb扫码枪数据_USB
- 转行,转向哪里?电子工程师!!!
- 来了,单片机最强科普总结!
- anguler 画面布局适应屏幕大小_前端开发常见的五大布局模式,绝对不要错过这篇分享!...