//今天 DateTime.Now.Date.ToShortDateString(); //昨天,也就是今天的日期減一 DateTime.Now.AddDays(-1).ToShortDateString(); //明天,同理,加一 DateTime.Now.AddDays(1).ToShortDateString(); //本周(要知道本周第一天就得先知道今天是星期幾,從而得知 本周第一天就是幾天前的那一天;每一周是從周日始至周六止[0-6]) DateTime.Now.AddDays(Convert.ToDouble((0-Convert.ToInt16 (DateTime.Now.DayOfWeek)))).ToShortDateString(); //DateTime.Now.DayOfWeek獲得今天是本周的第幾天(0<=n<=6) 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號,最后一天就是下個月的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).ToShortString(); //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).ToShortString(); //上年度 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.AddMonth(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(); //獲得當月有多少天 int m=System.DateTime.DaysInMonth(System.DateTime.Now.Year,System.DateTime.Now.Month); //獲取某月的實際工作日(即不包括周六日) //int days=getDays(System.DateTime.Now);調用即可獲得 private int getDays(System.DateTime date1) { int m=System.DateTime.DaysInMonth(date1.Year,date1.Month); int mm=0; for(int i=1;i<=m;i++) { System.DateTime date=Convert.ToDateTime(date1.Year+"-"+date1.Month+"-"+i); switch(date.DayOfWeek) { case System.DayOfWeek.Monday: case System.DayOfWeek.Tuessday: case System.DayOfWeek.Wednesday: case System.DayOfWeek.Thursday: case System.DayOfWeek.Friday: mm=mm+1; break; } } return mm; } //獲得任意兩日期之間的有效工作日(不包括周六日) DateTime date1=Convert.ToDateTime("2008-8-8"); DateTime date2=Convert.ToDateTime("2008-10-1"); int days=getDays(date1,date2); //調用如上即可獲得 private int getDays(System.DateTime date1,System.DateTime date2) { string m=Microsoft.VisualBasic.DateAndTime.DateDiff(EnumDateCompare.day,date1,date2).ToString("f0"); int mm=0; for(int i=0;i<=Convert.ToInt32(m);i++) { System.DateTime date=Convert.ToDateTime(date1.AddDays(i)); switch(date.DayOfWeek) { case System.DayOfWeek.Monday: case System.DayOfWeek.Tuesday: case System.DayOfWeek.Wednesday: case System.DayOfWeek.Thursday: case System.DayOfWeek.Friday: mm=mm+1; break; } } return mm; } //格式輸出 private void Page_Load(object sender,System.EventArgs e) { System.Globalization.DateTimeFormatInfo myDTFI=new System.Globalization.CultureInfo("en-US",false).DateTimeFormat; //中國為zh-cn DateTime myDT=System.DateTime.Now; Response.Write(myDT.ToString("f",myDTFI)); //獲得本周的周六和周日 public static void ConvertDateToWeek(DateTime date,out DateTime firstdate,out DateTime lastdate) { DateTime first System.DateTime.Now; DateTime last=System.DateTime.Now; switch(date.DayOfWeek) { case System.DayOfWeek.Monday: first=date.AddDays(-1); last=date.AddDays(5); break; case System.DayOfWeek.Tuesday: first=date.AddDays(-2); last=date.AddDays(4); break; case System.DayOfWeek.Wednesday: first=date.AddDays(-3); last=date.AddDays(3); break; case System.DayOfWeek.Thursday: first=date.AddDays(-4); last=date.AddDays(2); break; case System.DayOfWeek.Friday: first=date.AddDays(-5); last=date.AddDays(1); break; case System.DayOfWeek.Saturday: first=dateAddDays(-6); last=date; break; case System.DayOfWeek.Sunday: first=date; last=date.AddDays(6); break; } firstdate=first; lastdate=last; } //調用 DateTime firstdate=System.DateTime.Now; DateTime lastdate=System.Datetime.Now; ConvertDateToWeek(date,out firstdate,out lastdate); //獲得當前日期是該年度的第幾周 DateTime dt=Convert.ToDateTime("2008-8-8"); int weeks=dt.DayOfYear/7+1;