Skip to content

日期時間 DateTime

Tom edited this page Feb 3, 2021 · 9 revisions
  • 當下日期時間( MM/dd/yyyy HH:mm:ss ) Current date time

datetime_Now = Now
datetime_Now = Date.Now
datetime_Now = Datetime.Now

  • 當下日期時間格式化 Current date time in specific format

西元年 str_Year = Now.ToString("yyyy")
兩位數字月份 str_Month = Now.ToString("MM") 例: 09、10
英文月份 str_Month = Now.ToString("MMMM") 例: October、November
日 str_Date = Now.ToString("dd")

  • 自定義日期時間 Create the DateTime variable

e.g. 自訂日期時間 11/12/2020 10:23:20

datetime_Var = New Datetime( 2020, 11, 12, 10, 23, 20 )

  • 日期序列值轉換成日期格式 Convert OA date value to date time

e.g. 日期序列值 "44197" => "2021/01/01"

str_OADate = "44197"
datetime_Var = DateTime.FromOADate( Convert.ToDouble( str_OADate ) ).ToString("yyyy/MM/dd")

  • 日期格式轉換成日期序列值 Convert date time to OA date value

e.g. 日期格式 "2021/01/01" => "44197"

datetime_Var = New Datetime( 2021, 1, 1 )
str_OADate = datetime_Var.ToOADate.ToString

References

實作範例

  1. 系統執行日的前一年(民國年)

e.g. 2020/11/12 => 108

str_LastYear = Convert.ToString( Now.Year-1912 )
str_LastYear = Convert.ToString( Now.AddYears(-1).Year -1911 )

  1. 系統執行日的前一個月

e.g. 2020/11/12 => 10

str_LastMonth = Now.AddMonths(-1).ToString("MM")

  1. 系統執行日的前一個月月底

(i) 西元年月日 e.g. 2020/11/12 => 20201031

str_LastMonthEnd = Now.AddDays( -Now.Day ).ToString("yyyyMMdd")

(ii) 民國年月日 e.g. 2020/11/12 => 1091031

str_LastMonthEnd = New Datetime( Now.Year-1911, Now.Month, 1 ).AddDays(-1).ToString("yyyMMdd")

  1. 系統執行日的前一年元月 1日(民國年月)

e.g. 2020/11/12 => 1080101

str_LastYearFirstDate = New Datetime( Now.Year-1912, 1, 1 ).ToString("yyyMMdd")

  1. 系統執行日的前一年當月 1日(民國年月日)

e.g. 2020/11/12 => 1081101

str_LastThisMonthBegin = New Datetime( Now.Year-1912, Now.Month, 1 ).ToString("yyyMMdd")

  1. 系統執行日的前一年 12月 31日(民國年月日)

e.g. 2020/11/12 => 1091231

str_LastYearEnd = New Datetime( Now.Year-1912, 12, 31 ).ToString("yyyMMdd")

  1. 系統執行日的次月 5日(民國年月日)

e.g. 執行日 2021/2/3 => 1100305

str_NextMonth5 = New Datetime( Now.AddMonths(1).Year-1911, Now.AddMonths(1).Month, 5 ).ToString("yyyMMdd")