![](/img/trans.png)
[英]datetime format conversion from mm-dd-yyyy to yyyy-mm-dd in c#
[英]How to get Date (yyyy/mm/dd) from ticks without using an instance/helper of/from Datetime C#
我正在嘗試從刻度中提取日期。
我說的對,毫秒是10000滴答。 一天是864000000000滴答聲,一個月是26784000000000滴答滴答,一年是316224000000000。
但是當我在計算中使用它們時,我得到了錯誤的日期:(。
使用Datetime解析本來可以很容易,但是由於某些原因,他們說我不應該依賴它,因為它比較慢。
感謝您的幫助。 謝謝。
更新:
//assume this for now
DateTime time = DateTime.Now;
char[] ashigakaricom= new char[] { 'yyyy','-','mm','-','dd','-','H','H',':','M','M',':','S','S',':','m','m','m' };
long ticks = time.Ticks;
int n1 = (int)(ticks >> 32);
int n2 = (int)ticks;
if (n2 < 0)
n1++;
ticks = (((Math.BigMul(429497, n2) - (int)(Math.BigMul(1161359156, n2) >> 32) - Math.BigMul(1161359156, n1)) >> 32)) + Math.BigMul(n1, 429497); n1 = (int)(ticks >> 32);
n2 = (int)ticks;
if (n2 < 0)
n1++;
int q = n1 * 50 + ((50 * (n2 >> 16)) >> 16) - (int)(System.Math.BigMul(1244382467, n1) >> 32) - 1;
int r = (int)(ticks - System.Math.BigMul(q, 86400000));
if (r > 86400000)
r -= 86400000;
//so on
一個月是26784000000
啊-對不起,你住在哪個星球上? 在礦山(稱為“地球”)上的月份為28到31天,因此無法將其標准化為特定的滴答數。
您能想到的最好的是IIRC
工作日歷無法實現您要達到的目標,這意味着大量的維護和管理費用。每月平均需要5個小時。 只需使用.NET提供的功能-要進行零增益復制就需要大量工作。
嘗試這個:
TimeSpan elapsedSpan = new TimeSpan(10000);
or: TimeSpan elapsedSpan = TimeSpan.FromTicks(10000);
then use: elapsedSpan.Milliseconds, elapsedSpan.Days
參考: http : //msdn.microsoft.com/en-us/library/system.datetime.ticks.aspx
P / S:316224000000000滴答等於366天。
毫秒可以是任意數量的滴答聲(取決於您使用的滴答聲)。 無論如何,即使您有一個紀元以來的天數(假設為1970年1月1日),您仍然很難計算每個月(例如2月)的天數。
我對此有幾個想法:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.