DateTime.Now.Ticks和產生隨機數

來源:互聯網
上載者:User

1秒等於1000毫秒,以下單位是微秒、納秒(=10億秒)、皮秒、飛秒,均是千位進位。

為什麼產生隨機數時:Random ran = new Random((int)DateTime.Now.Ticks); 要用DateTime.Now.Ticks,DateTime.Now.Ticks的意義是什麼?

擷取表示此執行個體的日期和時間的刻度數。 ---是什麼意思

電腦的“隨機數”並非真的“隨機數”,而是偽隨機數——也就是通過一系列演算法,從一個起始數字開始按照一定規則算出來的。

就好像函數F(x)一樣,x就是隨機數的種子。

你可以做個測試:把你的"new Random(x)"裡面的x設定成一個固定數字,例如1,多次運行程式列印隨機數,你會發現每次運行列印出來的數字都是一樣的。

DateTime.Now.Ticks的刻度為一百納秒。
取表示此執行個體的日期和時間的計時周期數。

屬性值

類型:System..::.Int64
表示此執行個體的日期和時間的計時周期數。該值介於 DateTime.MinValue.Ticks
DateTime.MaxValue.Ticks 之間。

備忘

每個計時周期表示一百納秒,即一千萬分之一秒。此屬性的值表示自 0001 年 1 月 1 日午夜 12:00:00(表示 DateTime..::.MinValue)以來經過的以
100 納秒為間隔的間隔數。

樣本

下面的樣本使用 Ticks 屬性顯示自二十一世紀初以來經過的計時周期數,並執行個體化
TimeSpan 對象。然後,使用
TimeSpan 對象顯示採用幾個其他時間間隔所經過的時間。

DateTime centuryBegin = new DateTime(2001, 1, 1);
DateTime currentDate = DateTime.Now;

long elapsedTicks = currentDate.Ticks - centuryBegin.Ticks;
TimeSpan elapsedSpan = new TimeSpan(elapsedTicks);

Console.WriteLine("Elapsed from the beginning of the century to {0:f}:",
                   currentDate);
Console.WriteLine("   {0:N0} nanoseconds", elapsedTicks * 100);
Console.WriteLine("   {0:N0} ticks", elapsedTicks);
Console.WriteLine("   {0:N2} seconds", elapsedSpan.TotalSeconds);
Console.WriteLine("   {0:N2} minutes", elapsedSpan.TotalMinutes);
Console.WriteLine("   {0:N0} days, {1} hours, {2} minutes, {3} seconds",
                  elapsedSpan.Days, elapsedSpan.Hours,
                  elapsedSpan.Minutes, elapsedSpan.Seconds);

// If run on December 14, 2007, at 15:23, this example displays the
// following output to the console:
//    Elapsed from the beginning of the century to Friday, December 14, 2007 3:23 PM:
//          219,338,580,000,000,000 nanoseconds //ticks*100=單位納秒
//          2,193,385,800,000,000 ticks                    //單位ticks
//          219,338,580.00 seconds
//          3,655,643.00 minutes
//          2,538 days, 15 hours, 23 minutes, 0 seconds

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.