C# 获取昨天日期_来点好运0v0的博客-程序员宅基地_c# 昨天

技术标签: C#  时间  C#的一些东西  

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();

简单补充

c#中如何获取时间!
1、DateTime 数字型
System.DateTime currentTime=new System.DateTime();
1.1 取当前年月日时分秒
currentTime=System.DateTime.Now;
1.2 取当前年
int 年=currentTime.Year;
1.3 取当前月
int 月=currentTime.Month;
1.4 取当前日
int 日=currentTime.Day;
1.5 取当前时
int 时=currentTime.Hour;
1.6 取当前分
int 分=currentTime.Minute;
1.7 取当前秒
int 秒=currentTime.Second;
1.8 取当前毫秒
int 毫秒=currentTime.Millisecond;
(变量可用中文)

1.9 取中文日期显示——年月日时分
string strY=currentTime.ToString(“f”); //不显示秒

1.10 取中文日期显示_年月
string strYM=currentTime.ToString(“y”);

1.11 取中文日期显示_月日
string strMD=currentTime.ToString(“m”);

1.12 取中文年月日
string strYMD=currentTime.ToString(“D”);

1.13 取当前时分,格式为:14:24
string strT=currentTime.ToString(“t”);

1.14 取当前时间,格式为:2003-09-23T14:46:48
string strT=currentTime.ToString(“s”);

1.15 取当前时间,格式为:2003-09-23 14:48:30Z
string strT=currentTime.ToString(“u”);

1.16 取当前时间,格式为:2003-09-23 14:48
string strT=currentTime.ToString(“g”);

1.17 取当前时间,格式为:Tue, 23 Sep 2003 14:52:40 GMT
string strT=currentTime.ToString(“r”);

1.18获得当前时间 n 天后的日期时间
DateTime newDay = DateTime.Now.AddDays(100);

string strT = DateTime.Now.ToString(“yyyy-MM-dd HH:mm:ss”);

System.DateTime currentTime=new System.DateTime();
currentTime=System.DateTime.Now; //取当前年月日时分秒
string Y=currentTime.Year.ToString(); //取当前年
string M=currentTime.Month.ToString(); //取当前月
string D=currentTime.Day.ToString(); //取当前日
string T=currentTime.Hour.ToString(); //取当前时
string MM=currentTime.Minute.ToString(); //取当前分
string S=currentTime.Second.ToString(); //取当前秒
string SS=currentTime.Millisecond.ToString(); //取当前毫秒
string FileName=Y+M+D+T+MM+S+SS+".Html"; //联接后,得到长文件名

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_35936174/article/details/84373475

智能推荐

vue-router 的学习以及实现_dongceha的博客-程序员宅基地

这里记录一下关于 vue-router 的学习,以及自己实现一个类似的东西vue-router 分为 hash 模式和 history 模式,众所周知的是,hash 模式 是利用 监听hashchange 事件来实现的,而 history 则是通过监听 popstate 事件 实现的,那么 到底是在什么时候实现监听的呢?1、创建一个 VueRouter 类,并实现内部的 事件注册let _Vueexport default class VueRouter { // 使用静态..

c++ this指针与const对象_mybright_的博客-程序员宅基地

在 c++的const对象一文中已经介绍了const对象的属性,本文尝试从this指针的角度,再来分析const对象。1. 问题引入  同样的示例,定义一个类,并将其实例化为const对象://1_const_obj.cppclass Obj{private: int pri_dat;public: int get_pri_dat() {

STM32驱动SPI FLASH(W25Q64)_宁静致远2021的博客-程序员宅基地_w25q64驱动

@[TOC](STM32驱动SPI FLASH(W25Q64))原文链接:https://blog.csdn.net/wwt18811707971/article/details/77756312注:博客所涉及的关于 stm32 的代码,均在仓库【stm32f013_study】下,包括底层驱动和应用测试代码。本文设计的文件包含:(1)hardware_spi.c:硬件 SPI 驱动实现(2)drvsfspi.c:软件模拟 SPI 实现代码(3)drvexflash.c:SPI FLASH 操

GET请求Referer限制绕过总结_weixin_33910460的博客-程序员宅基地

作者:Vulkey_Chen原文来自:GET请求Referer限制绕过总结前言在做测试的时候会遇见这样几个漏洞场景:JSONP跨域劫持反射XSSGET请求类型攻击但是,在相对安全的情况下,都会有Referer(HTTP请求头)的限制。那么该如何去做绕过呢?正文什么是Referer?Referer是请求头的一部分,假设A站上有B站的链接,在A站上点击B站的链接,请求头会带有R...

python和pytorch关系_一文弄懂Pytorch的DataLoader, DataSet, Sampler之间的关系_weixin_39697096的博客-程序员宅基地

以下内容都是针对Pytorch 1.0-1.1介绍。很多文章都是从Dataset等对象自下往上进行介绍,但是对于初学者而言,其实这并不好理解,因为有的时候会不自觉地陷入到一些细枝末节中去,而不能把握重点,所以本文将会自上而下地对Pytorch数据读取方法进行介绍。自上而下理解三者关系首先我们看一下DataLoader.next的源代码长什么样,为方便理解我只选取了num_works为0的情况(nu...

最常被程序员们谎称读过的计算机书籍[转载]_吴钦飞的博客-程序员宅基地

最常被程序员们谎称读过的计算机书籍英语原文:Books Programmers Don't Really Read

随便推点

初学ES6之——字符串、数值与数组的使用_PY教义的博客-程序员宅基地

开发工具:Subline Text3 记事本,安装了Node.js进行编译。一、ES6对字符串的扩展//该方法可以识别大于0xFFFF的字符var x = String.fromCodePoint(0x20BB1);var x3 = x.repeat(3) //重复三次for (let i of x3) { console.log(i) //遍历字符串输出}输出结果:

C语言打印九九乘法表_路遥ly的博客-程序员宅基地

分析:C语言利用for循环打印九九乘法表:效果:

python通过rsa分段加密_Chise1的博客-程序员宅基地_python rsa 分段加密

文章目录概述概述为了对接目标系统,登陆的时候使用的是rsa非对称加密,由于rsa一次最多只能加密128个字符(好像是这么多),所以这里需要考虑通过python实现rsa分段加密。import requestsimport loggingfrom Crypto.PublicKey import RSAfrom Crypto.Cipher import PKCS1_v1_5import ...

JS扩展运算符巧用_AndyQsmart的博客-程序员宅基地

公众号:程序员波波JavaScript中es6里面有一个扩展运算符...感觉十分方便。和Python中的*、**有点类型。...的作用是展开一个对象或者数组中的数据,比如:let a = [1, 2, 3]let b = [2, ...a, 4] // b = [2, 1, 2, 3, 4]sum(...a) <=> sum(1, 2, 3)let x = ...

【Python基础】Python时间模块,超实用总结!_风度78的博客-程序员宅基地

我的施工之路 施工之路已完成13篇图文,又提炼为思维导图,结合使用,效果最佳。1我的施工计划2数字专题3字符串专题4列表专题5流程控制专题6编程风格专题7函数使用8面向对象编程(上篇...

jquery插件一直报错:xx is not a function_普通网友的博客-程序员宅基地

当然像js文件未引用或者js插件使用方法不对这样的解决办法想必大家都已经试过了。 那么在放弃前请最后看一下是不是引用了两个jquery文件。 引用了两个jquery文件! 引用了两个jquery文件!...