c#詳解datetime應用示例。本站提示廣大學習愛好者:(c#詳解datetime應用示例)文章只能為提供參考,不一定能成為您想要的結果。以下是c#詳解datetime應用示例正文
實例:
用戶輸出一個日期,請求輸入這個日期是禮拜幾和在這一年中的第幾天:
//聲明一個DateTime類型的變量用於寄存用戶輸出的日期
DateTime dt;
Console.WriteLine("請輸出日期:(例如:2000-01-01 或 2000/01/01)");
//把輸出的日期字符串轉換成日期格局類型
dt = DateTime.Parse(Console.ReadLine());
//由於DayOfWeek前往的是0、1、2、3、4、5、6,分離對應的是日、1、2、3、4、5、六
//Substring是停止檢索字符串並前往婚配的指定長度的子字符串
string str = "日一二三四五六".Substring((int)dt.DayOfWeek, 1);
Console.WriteLine("{0}年{1}月{2}日是禮拜{3}", dt.Year, dt.Month, dt.Day, str);
Console.WriteLine("{0}年{1}月{2}日是這一年的第{3}天", dt.Year, dt.Month, dt.Day, dt.DayOfYear);
Console.WriteLine("{0}是禮拜{1}", dt.ToShortDateString(), str);
Console.WriteLine("{0}是這一年的第{1}天", dt.ToLongDateString(), dt.DayOfYear);
上述代碼運轉的成果以下
顯示以後時代和時光的分歧及格:
//以分歧的格局顯示當天日期和時光
Console.WriteLine("如今時光是:{0}", DateTime.Now.ToString("yyyy-M-d H:m:s"));
Console.WriteLine("如今時光是:{0}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
Console.WriteLine("如今時光是:{0}", DateTime.Now.ToString("yyyy-MM-dd"));
Console.WriteLine("短日期字符串表現如今時光是:{0}", DateTime.Now.Date.ToShortDateString());
Console.WriteLine("永日期字符串表現如今時光是:{0}", DateTime.Now.Date.ToLongDateString ());
上述代碼的運轉成果以下
日期類型(DateTime)格局化
辦法一:
應用DateTime.ToString(format, DateTimeFormatInfo.InvariantInfo)
示例代碼:
DateTime dt = DateTime.Now;
t.ToString("M/d/yyyy");
參數format格局具體用法:
格局字符聯系關系屬性/解釋
dShortDatePattern
DLongDatePattern
f完全日期和時光(永日期和短時光)
FFullDateTimePattern(永日期和長時光)
g慣例(短日期和短時光)
G慣例(短日期和長時光)
m、MMonthDayPattern
r、RRFC1123Pattern
s應用本地時光的SortableDateTimePattern(基於ISO8601)
tShortTimePattern
TLongTimePattern
uUniversalSortableDateTimePattern用於顯示通用時光的格局
U應用通用時光的完全日期和時光(永日期和長時光)
y、YYearMonthPattern
上面列出可被歸並以結構自界說形式的形式:
d月中的某一天。一名數的日期沒有前導零。
dd月中的某一天。一名數的日期有一個前導零。
ddd周中某天的縮寫稱號,在AbbreviatedDayNames中界說。
dddd周中某天的完全稱號,在DayNames中界說。
M月份數字。一名數的月份沒有前導零。
MM月份數字。一名數的月份有一個前導零。
MMM月份的縮寫稱號,在AbbreviatedMonthNames中界說。
MMMM月份的完全稱號,在MonthNames中界說。
y不包括紀元的年份。假如不包括紀元的年份小於10,則顯示不具有前導零的年份。
yy不包括紀元的年份。假如不包括紀元的年份小於10,則顯示具有前導零的年份。
yyyy包含紀元的四位數的年份。
gg時代或紀元。假如要設置格局的日期不具有聯系關系的時代或紀元字符串,則疏忽該形式。
h12小時制的小時。一名數的小時數沒有前導零。
hh12小時制的小時。一名數的小時數有前導零。
H24小時制的小時。一名數的小時數沒有前導零。
HH24小時制的小時。一名數的小時數有前導零。
m分鐘。一名數的分鐘數沒有前導零。
mm分鐘。一名數的分鐘數有一個前導零。
s秒。一名數的秒數沒有前導零。
ss秒。一名數的秒數有一個前導零。
f秒的小數精度為一名。其他數字被截斷。
ff秒的小數精度為兩位。其他數字被截斷。
fff秒的小數精度為三位。其他數字被截斷。
ffff秒的小數精度為四位。其他數字被截斷。
fffff秒的小數精度為五位。其他數字被截斷。
ffffff秒的小數精度為六位。其他數字被截斷。
fffffff秒的小數精度為七位。其他數字被截斷。
t在AMDesignator或PMDesignator中界說的AM/PM指導項的第一個字符(假如存在)。
tt在AMDesignator或PMDesignator中界說的AM/PM指導項(假如存在)。
z時區偏移量(“+”或“-”前面僅跟小時)。一名數的小時數沒有前導零。例如,寧靖洋尺度時光是“-8”。
zz時區偏移量(“+”或“-”前面僅跟小時)。一名數的小時數有前導零。例如,寧靖洋尺度時光是“-08”。
zzz完全時區偏移量(“+”或“-”前面跟有小時和分鐘)。一名數的小時數和分鐘數有前導零。例如,寧靖洋尺度時光是“-08:00”。
:在TimeSeparator中界說的默許時光分隔符。
/在DateSeparator中界說的默許日期分隔符。
%c個中c是格局形式(假如零丁應用)。假如格局形式與原義字符或其他格局形式歸並,則可以省略“%”字符。
\c個中c是隨意率性字符。照原義顯示字符。若要顯示反斜槓字符,請應用“\\”。
辦法二:
DateTimedt=DateTime.Now;
Label1.Text=dt.ToString();//2005-11-513:21:25
Label4.Text=dt.ToLocalTime().ToString();//2005-11-521:21:25Label5.Text=dt.ToLongDateString().ToString();//2005年11月5日Label6.Text=dt.ToLongTimeString().ToString();//13:21:25
dt.ToString();//2005-11-513:21:25
dt.ToFileTime().ToString();//127756416859912816
dt.ToFileTimeUtc().ToString();//127756704859912816
dt.ToLocalTime().ToString();//2005-11-521:21:25
dt.ToLongDateString().ToString();//2005年11月5日
dt.ToLongTimeString().ToString();//13:21:25
dt.ToOADate().ToString();//38661.5565508218
dt.ToShortDateString().ToString();//2005-11-5
dt.ToShortTimeString().ToString();//13:21
dt.ToUniversalTime().ToString();//2005-11-55:21:25
dt.Year.ToString();//2005
dt.Date.ToString();//2005-11-50:00:00
dt.DayOfWeek.ToString();//Saturday
dt.DayOfYear.ToString();//309
dt.Hour.ToString();//13
dt.Millisecond.ToString();//441
dt.Minute.ToString();//30
dt.Month.ToString();//11
dt.Second.ToString();//28
dt.Ticks.ToString();//632667942284412864
dt.TimeOfDay.ToString();//13:30:28.4412864
dt.ToString();//2005-11-513:47:04
dt.AddYears(1).ToString();//2006-11-513:47:04
dt.AddDays(1.1).ToString();//2005-11-616:11:04
dt.AddHours(1.1).ToString();//2005-11-514:53:04
dt.AddMilliseconds(1.1).ToString();//2005-11-513:47:04
dt.AddMonths(1).ToString();//2005-12-513:47:04
dt.AddSeconds(1.1).ToString();//2005-11-513:47:05
dt.AddMinutes(1.1).ToString();//2005-11-513:48:10
dt.AddTicks(1000).ToString();//2005-11-513:47:04
dt.CompareTo(dt).ToString();//0
dt.Add(?).ToString();//問號為一個時光段
dt.Equals("2005-11-616:11:04").ToString();//False
dt.Equals(dt).ToString();//True
dt.GetHashCode().ToString();//1474088234
dt.GetType().ToString();//System.DateTime
dt.GetTypeCode().ToString();//DateTime
dt.GetDateTimeFormats('s')[0].ToString();//2005-11-05T14:06:25
dt.GetDateTimeFormats('t')[0].ToString();//14:06
dt.GetDateTimeFormats('y')[0].ToString();//2005年11月
dt.GetDateTimeFormats('D')[0].ToString();//2005年11月5日
dt.GetDateTimeFormats('D')[1].ToString();//20051105
dt.GetDateTimeFormats('D')[2].ToString();//禮拜六20051105
dt.GetDateTimeFormats('D')[3].ToString();//禮拜六2005年11月5日
dt.GetDateTimeFormats('M')[0].ToString();//11月5日
dt.GetDateTimeFormats('f')[0].ToString();//2005年11月5
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=newstring[]{"禮拜日","禮拜一","禮拜二","禮拜三","禮拜四","禮拜五","禮拜六"};
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();