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

posted on 2011-04-05 18:16 江宇旋 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/jiangyuxuan/archive/2011/04/05/2006008.html

C# datetime 操作相关推荐

  1. C#相关的DateTime操作

    C#相关的DateTime操作 //定义一个DateTime类的变量 DateTime dt = DateTime.Now; //转换为指定的格式 dt.ToString();//2005-11-5 ...

  2. python数据分析平均时间间隔_python 数据分析中常用的时间--datetime操作

    Python 中有time 模块和datetime模块,因为datetime使用的语法结构跟sql比较类型,所以,我选择了使用datetime. datetime有以下几个类.总结来看,如下图. 下面 ...

  3. DateTime 操作详解

    /大家在做报表或查询的时候都会有给用户预设一些可选的日期范围 2                //如本年度销售额.本季度利润.本月新增客户 3                //C#里内置的Date ...

  4. mysql——时间字段类型与C#中datetime

    一.引言 做项目的时候开始纠结于用2013-01-01 12-12-12存储还是用 2013-01-01存储,这个设计到的问题是mysql中时间字段的选择问题:date.time或者datetime: ...

  5. python计算时间加减,python datetime库使用和时间加减计算

    datetime库使用 一.操作当前时间 1.获取当前时间 >>> import datetime >>> print datetime.datetime.now( ...

  6. python真的那么强大嘛-这些 Python 库真的很“冷”,但是却很强大

    Python是一种很棒的编程语言.事实上,它还是世界上发展最快的编程语言之一.它一次又一次证明了它在数据科学职位中的实用性.整个Python及其库的生态系统使其成为全世界用户(初学者和高级)的合适选择 ...

  7. 008_setting指令

    1. setting指令为进一步的处理而设置.设置是影响FreeMarker行为的值.<#setting name=value />, name: 设置的名称, 不是表达式.value: ...

  8. sqlerver 字符串转整型_mssql sqlerver 脚本 计算数据表的结余数的方法分享

    摘要: 今天接到一个需求,有一张数据表,记录的是消费明细数据, 现在需要做一个累计结余,记录每次的数据结余合计, 下文将展示一种sql脚本的编写方式 实验环境:sqlserver 2008 R2 如下 ...

  9. garch预测 python_数据科学方面的Python库,实用!

    作者:Python开发与大数据人工智能原文:公众号 Python开发与大数据人工智能 Python是一种很棒的编程语言.事实上,它还是世界上发展最快的编程语言之一.它一次又一次证明了它在数据科学职位中 ...

最新文章

  1. 西部数码虚拟主机服务器配置,西部数码虚拟主机设置首页功能介绍
  2. K.O. -------- Eclipse中Maven的报错处理
  3. centos5.6安装mysql_centos安装mysql5.6的正确姿态
  4. 开启tomcat的apr模式,并利用redis做tomcat7的session的共享。
  5. 快速切換手機版網頁語法
  6. ThinkPHP6项目基操(8.多应用模式)
  7. python怎么导出程序_[272]如何把Python脚本导出为exe程序
  8. electron-vue使用electron-updater实现自动更新
  9. 包导出Android升级ADT22后会报ClassNotFoundException的原因分析
  10. 数字逻辑电路学习笔记
  11. AxureUX中后台管理信息系统通用原型方案
  12. u盘 计算机管理 没有就绪,U盘无法识别先别着急扔!这五步操作还能挽救一下...
  13. lisp方格网法计算土方量_CAD计算土方方量插件
  14. android导航栏字体,Android状态栏/导航栏颜色
  15. 滴滴二面:Kafka是如何读写副本消息的?
  16. PS如何制作圆角矩形图片
  17. 企业远程视频会议系统EasyRTC进入直播间后遇到无法播放及黑屏问题解决
  18. APP设计师必上的10个APP图标素材资源站
  19. 8253计数器/定时器实验
  20. Python 布尔类型 bool

热门文章

  1. 解决win2003安装exchangeServer后关机慢的方法
  2. echo回声不能用了_已懂得用电子分频器,为何不继续加个效果器让音响效果更好?...
  3. 最近邻插值、双线性插值、双三次插值
  4. Java IO - Reader
  5. linux查看tar进程进度,Linux:wget后台下载/查看后台任务进度
  6. 单片机全局有必要封装_MCU-C程序基本编程规范(转)
  7. python每隔30s检查一次_用Python写一个“离线语音提示器”来提醒我们别忘记了时间...
  8. android java 实体类 object变量 保存_Android中Intent传递对象的两种方法Serializable,Parcelable...
  9. 产品经理经验谈100篇(四)-B端交互设计规范
  10. AUTOSAR从入门到精通100讲(八十二)-AutoSAR之基础篇CanNM