我有一個類似於41512 的MSDate我想從中找出過去的2年。 現在我在C#中,41512日期是一個字符串。找出過去2年的MSDate
0
A
回答
4
的msDate是因爲1900-01-00天數,那麼你可以通過new DateTime(1900,01,01)
並添加msDate,再服用2(1〜賬戶計算它對於00-00而不是00-01,因爲你不計算目標日本身)。更容易,FromOADate功能爲您處理這個問題。 然後你可以減去兩年來獲得新的日期。 您可以選擇使用ToOADate函數將此日期轉換回整數。
int msDate = 41512;
//DateTime d = (new DateTime(1900, 01, 01)).AddDays(msDate - 2).AddYears(-2);
DateTime d = DateTime.FromOADate(msDate).AddYears(-2);
msDate = int.Parse(d.ToOADate().ToString());
0
您的「MSDate」是自特定時代(一個時代是日曆上的零點)以來的天數嗎?如果是這樣,你可以做這樣的事情:
public DateTime MsDateToDateTime(string msDate)
{
int daysSinceEpoch ;
bool parsed = int.TryParse(msDate , out daySinceEpoch) ;
if (!parsed) throw new ArgumentException("msDate") ;
Datetime value = epoch.AddDays(daysSinceEpoch) ;
return value ;
}
// our epoch is 1 January 1900 00:00:00
private static readonly DateTime epoch = new DateTime(1900,1,1) ;
一旦它的一個DateTime
,你可以操縱它,只要你喜歡。您可以閱讀DateTime.AddYears()
方法。
走另一條路:
public string DateTimeToMsDate(DateTime dt)
{
return ((int) (dt-epoch).TotalDays).ToString() ;
}
相關問題
- 1. 從過去2年到2016年的利潤計算
- 2. 的Rails 2應用程序找到CURRENT_USER過去五年的鳴叫
- 3. 開始暗號 - 讓演員在過去的2年
- 4. 查找去年的月份名稱
- 5. 如何提取從去年2行DOS
- 6. 追加李在去年孩子(2)
- 7. 去年
- 8. 我如何找出去年四月,特別是去年四月的第一個月在php
- 9. Mysql獲得過去3年的職位
- 10. 如何返回過去的年數?
- 11. 選擇過去50年的日期
- 12. php日曆2012年2月後去2013年3月
- 13. Access-sql和VBA:SUM當前月和年(2017年2月)以及當前月和去年(2016年2月)
- 14. 查找在過去
- 15. wp_get_archives的範圍過濾器:本月,上月/今年,去年
- 16. 日期自新年以來沒有過去的一年
- 17. 與去年wg.Done()
- 18. 減去一年
- 19. 過去10年Windows API如何變化?
- 20. 試圖通過減去一年
- 21. python日期出現在去年
- 22. 如何在Oracle中選擇表格中的過去2年的10行
- 23. 比較去年和今年的結果
- 24. 減去兩年,如果圍捕超過半年
- 25. 如何找出下一年?
- 26. 的ActiveMQ出去過隊列
- 27. 年2年格式
- 28. jQuery UI,日曆,找出是否給出的日期是2年以上
- 29. 選擇從去年
- 30. 刮自去年刮
轉換爲'int'並減去'2 * 365'?取決於你的*年的定義* ... –
你有什麼試過?什麼是「MSDate」? 41512代表什麼?這似乎是自1900年1月1日以來的天數,自8月28日以來是1900年1月1日以來的41,512天。清晰的問題陳述和代碼樣本顯示您的工作到目前爲止有助於我們爲您提供幫助。 –