关闭

C#.NET 获取各种日期时间

标签: C#日期时间
27人阅读 评论(0) 收藏 举报
分类:
DateTime dt = DateTime.Now;  //当前时间

DateTime startWeek = dt.AddDays(1 - Convert.ToInt32(dt.DayOfWeek.ToString("d")));  //本周周一
DateTime endWeek = startWeek.AddDays(6);  //本周周日

DateTime startMonth = dt.AddDays(1 - dt.Day);  //本月月初
DateTime endMonth = startMonth.AddMonths(1).AddDays(-1);  //本月月末
//DateTime endMonth = startMonth.AddDays((dt.AddMonths(1) - dt).Days - 1);  //本月月末

DateTime startQuarter = dt.AddMonths(0 - (dt.Month - 1) % 3).AddDays(1 - dt.Day);  //本季度初
DateTime endQuarter = startQuarter.AddMonths(3).AddDays(-1);  //本季度末

DateTime startYear = new DateTime(dt.Year, 1, 1);  //本年年初
DateTime endYear = new DateTime(dt.Year, 12, 31);  //本年年末

至于昨天、明天、上周、上月、上季度、上年度等等,只要AddDays()、AddMonths()、AddYears()这几种方法组合一下就可以了。


C#中datetime的使用
//如果你还不明白,再看一下中文显示星期几的方法就应该懂了
//由于DayOfWeek返回的是数字的星期几,我们要把它转换成汉字方便我们阅读,有些人可能会用switch来一个一个地对照,其实不用那么麻烦的
string[] Day = new string[] { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
string week = Day[Convert.ToInt32(DateTime.Now.DayOfWeek.ToString("d"))].ToString();

//上周,同理,一个周是7天,上周就是本周再减去7天,下周也是一样
DateTime.Now.AddDays(Convert.ToInt32 (1 - Convert.ToInt32(DateTime.Now.DayOfWeek)) - 7);        //上周一
DateTime.Now.AddDays(Convert.ToInt32 (1 - Convert.ToInt32(DateTime.Now.DayOfWeek)) - 7).AddDays(6);     //上周末(星期日)

//下周
DateTime.Now.AddDays(Convert.ToInt32 (1 - Convert.ToInt32(DateTime.Now.DayOfWeek)) + 7);        //下周一
DateTime.Now.AddDays(Convert.ToInt32(1 - Convert.ToInt32(DateTime.Now.DayOfWeek)) + 7).AddDays(6);      //下周末

//本月,很多人都会说本月的第一天嘛肯定是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)).AddDays(1 - DateTime.Now.Day);

//同理,本季度的最后一天就是下季度的第一天减一
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)). AddDays(1 - DateTime.Now);
DateTime.Now.AddMonths(0 - ((DateTime.Now.Month - 1) % 3)).AddDays(1 - DateTime.Now.Day).AddDays(-1).ToShortDateString();
本文转自网络,再次感谢原作者,如果不便转载,请留言删除,再次感谢!
0
0
查看评论

Java获取各种日期时间

package com.mjgy.common.utils;   import java.text.DateFormat; import java.util.Calendar; import java.util.Date;     public class...
  • xnf1991
  • xnf1991
  • 2017-04-25 17:18
  • 199

获取各种日期时间的总结

import java.text.ParsePosition; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCal...
  • j249976177
  • j249976177
  • 2015-03-05 15:58
  • 321

C#.NET日期时间取得方法

//获取日期+时间 DateTime.Now.ToString(); // 2008-9-4 20:02:10 DateTime.Now.ToLocalTime().ToString(); // 2008-9-4 20:12:12 //获取日期 DateTime.Now.ToLongDateStri...
  • zhouqt
  • zhouqt
  • 2016-06-29 20:54
  • 165

C#.NET各种连接字符串

1.C#连接连接Access      程序代码:             using   System.Data;      using ...
  • yayun0516
  • yayun0516
  • 2014-11-17 13:53
  • 1311

android中获取日期时间的几种方式

日期时间的获取方式如下所示: 1、使用SimpleDateFormat和Date类获取日期时间 private String _GetYear(){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); ...
  • u011043551
  • u011043551
  • 2016-11-11 15:33
  • 2986

C#.NET 各种连接字符串

原文请参见: http://www.cnblogs.com/zhiqiang-imagine/archive/2010/03/22/1691538.html 1.C#连接连接Access     程序代码:       ...
  • cqulyk
  • cqulyk
  • 2012-12-12 17:30
  • 323

C#.NET 连接各种数据库

1、连接SQL2000 【sa身份登陆】 stringsqlConnection="server=(local);DATABASE=DB;USER ID=SA;PWD=123;"; 2、连接SQL2000【windows默认身份登陆】 stringSqlConnection=&q...
  • ainixiaozhuzi
  • ainixiaozhuzi
  • 2013-10-27 00:26
  • 1981

获取系统日期时间的简单方法

不用MFC类,直接使用C/C++ANSI标准库函数 1.time.h简介 日常编程中,常常需要获取系统的日期时间或对相关日期时间进行简单处理等。我常常使用MFC类库中的CMonthCalCtrl、 CDateTimeCtrl CTime/CTimeSpan、COleDateTime...
  • zxxSsdsd
  • zxxSsdsd
  • 2015-04-27 14:03
  • 4484

c#.NET 中关于日期时间的格式化处理

1.绑定时格式化日期方法:                        ...
  • pupstar
  • pupstar
  • 2006-10-08 16:51
  • 847

unix网络基础-TCP时间获取客户程序

TCP时间获取客户程序 从今天开始学习一下《UNIX网络编程卷1:套接字API》,所有代码参照本书的程序,加上个人的分析,肯定有不对的地方,欢迎留言指出,谢谢。 本篇介绍书中第一个代码intro/daytimetcpcli.c。这是一个客户程序,该客户与其服务器建立一个TCP连接后,服务器以直观...
  • CSLQM
  • CSLQM
  • 2016-12-04 12:07
  • 315
    个人资料
    • 访问:1237次
    • 积分:66
    • 等级:
    • 排名:千里之外
    • 原创:5篇
    • 转载:2篇
    • 译文:0篇
    • 评论:0条
    文章存档