<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 18.日期和時間 Ruby 提供了從計算機時鐘中提取時間和日期的方法。 當今所有的個人計算機都有一個稱為 RTC(實時時鐘)的東西,它由電池供電,即使機器關閉也可以保持時間。 許多編程語言都允許我們訪問此時鐘并使用日期和時間進行操作。 讓我們看看如何使用 Ruby。 讓我們在 irb 中執行此操作,而不是將程序寫入文件中。 我們要做的第一件事是發現現在幾點鐘了? 為此,只需在 irb 中鍵入`Time.now`就可以了。 你將獲得當前時間。 ```rb >> Time.now => Thu Feb 25 16:54:45 +0530 2010 ``` Time.now 是`Time.new`的同義詞,它創建一個新的`Time`對象。 你可以使用`Time.now`或`Time.new`,兩者將產生相同的結果。 ```rb >> Time.new => Thu Feb 25 16:54:48 +0530 2010 ``` 在以下命令中,我們創建一個新的時間對象/實例,并將其分配給變量`t` ```rb >> t = Time.new => Thu Feb 25 16:55:02 +0530 2010 ``` 現在已經分配了,如何查看`t`的值? 我們將使用檢查方法。 因此,通過鍵入`t.inspect`,我們可以檢查 t 中的內容。 ```rb >> t.inspect => "Thu Feb 25 16:55:02 +0530 2010" ``` `t.inspect`將時間對象轉換為字符串并顯示給我們。 可以通過`to_s`(到字符串)功能完成相同的操作,如下所示 ```rb >> t.to_s => "Thu Feb 25 16:55:02 +0530 2010" ``` `t.year`檢索時間對象 ```rb >> t.year => 2010 ``` `t.month`檢索月份對象 ```rb >> t.month => 2 ``` `t.day`檢索時間對象中的當天(該月) ```rb >> t.day => 25 ``` `t.wday`檢索當天的數字。 0 表示星期日,1→星期一,2→星期二,依此類推,直到 6 表示星期六 ```rb >> t.wday => 4 ``` 在上面的代碼段中,星期四是星期四。 `t.yday`檢索該年中的日期。 例如,2 月 1 日是一年中的第 32 天。 ```rb >> t.yday => 56 ``` `t.hour`檢索時間對象中的小時。 小時為 24 小時格式。 ```rb >> t.hour => 16 ``` `t.min`檢索時間對象中的分鐘值。 ```rb >> t.min => 55 ``` `t.sec`檢索時間秒對象。 ```rb >> t.sec => 2 ``` `t.usec`檢索時間對象中的微秒。 如果你受命編寫奧運會秒表應用程序,這將很有用。 ```rb >> t.usec => 357606 ``` `t.zone`檢索區域。 我在印度,在這里遵循印度標準時間,簡稱為 IST。 ```rb >> t.zone => "IST" ``` 有一個東西叫做 UTC 或世界時間坐標 &lt;sup class="footnote"&gt;[ [44](#_footnotedef_44 "View footnote.") ]&lt;/sup&gt; 。 經度為 0 度的時間。 `t.utc_offset`顯示你的時間與 UTC 的時間相差的秒數。 ```rb >> t.utc_offset => 19800 ``` 從上面的示例中,我知道住在格林威治的人將在我見過 19800 秒后看到日出。 DST 表示夏令時 &lt;sup class="footnote"&gt;[ [45](#_footnotedef_45 "View footnote.") ]&lt;/sup&gt; 。 我不知道那是什么 如果你的時區具有夏令時,則此函數返回`true`,否則返回`false`。 ```rb >> t.isdst => false ``` 如果你的時區為`UTC`,則`t.utc`返回 true 或 false ```rb >> t.utc? => false ``` 如果要獲取本地時間,只需如圖所示調用`localtime`函數。 在這種情況下,我們希望`t`保留本地時間值 ```rb >> t.localtime => Thu Feb 25 16:55:02 +0530 2010 ``` 與本地時間相同,`gmtime`功能獲取格林威治子午線時間。 ```rb >> t.gmtime => Thu Feb 25 11:25:02 UTC 2010 ``` `getlocal`功能是`local_time`的別名 ```rb >> t.getlocal => Thu Feb 25 16:55:02 +0530 2010 ``` `getutc`功能是`gmtime`的別名。 實際上,`gmtime`是`getutc`的別名 ```rb >> t.getutc => Thu Feb 25 11:25:02 UTC 2010 ``` `ctime`函數將時間格式化為易于閱讀的格式。 ```rb >> t.ctime => "Thu Feb 25 11:25:02 2010" ``` 假設我們要從時間值 t 中減去幾秒鐘,我們可以如圖所示。 下方,我們從時間值中減去 86400 秒(1 天) ```rb >> t - 86400 => Wed Feb 24 11:25:02 UTC 2010 ``` ### 18.1。 兩天之間的天數 現在,讓我們編寫一個代碼片段,以查找 2010 年 2 月 25 日至 2010 年 5 月 1 日之間的天數,首先,我們聲明一個變量`a`并將其分配給 2010 年 2 月 25 日,如圖所示 ```rb >> a = Time.local 2010, 2, 25 => Thu Feb 25 00:00:00 +0530 2010 ``` 注意,我們在`Time`類中使用了一個名為`local`的函數,我們可以為其指定一個日期。 從輸出中可以看到,我們知道變量`a`的值現在為 2 月 25 日。 我們以類似的方式創建了一個變量`b`,并將其分配給日期為 2010 年 5 月 1 日的日期 ```rb >> b = Time.local 2010, 5, 1 => Sat May 01 00:00:00 +0530 2010 ``` 我們現在要做的就是從 b 中減去 a ```rb >> b -a => 5616000.0 ``` 這給出了 a 和 b 之間的秒數。 我們將結果除以 86400(即一天中的秒數) ```rb >> days = _ / 86400 => 65.0 ``` 我們得到的結果是 65。 ### 18.2。 你住了幾天? 現在,讓我們看一個程序,該程序以你的生日為準,并打印出你住了多少天。 在文本編輯器中輸入程序并執行 ```rb #!/usr/bin/ruby # how_many_days.rb print "Enter birthday (YYYY-MM-DD):" bday = gets.chop year, month, day = bday.split('-') # puts " #{year}, #{month}, #{day}" seconds = Time.now - Time.local(year, month, day) days = (seconds / 86400).round puts "You have lived for #{days} days" ``` 這是結果 ```rb Enter birthday (YYYY-MM-DD):2000-5-23 You have lived for 3566 days ``` 好吧,這在你執行該程序時可能會有所不同。 現在讓我們對其進行分析。 在第一行 ```rb print "Enter birthday (YYYY-MM-DD):" ``` 我們要求用戶輸入他或她的生日,完成后,我們將在此處進行提示。 我們要求用戶在語句中以 YYYY-MM-DD 格式輸入 ```rb bday = gets.chop ``` 我們獲取日期并將其存儲在名為`bday`的變量中。 `gets.chop`獲得生日,并砍掉我們隨其輸入的輸入符號。 因此`bday`現在保存你輸入的生日的字符串值。 在下一條語句中 ```rb year, month, day = bday.split('-') ``` 我們有一個多重分配,其中我有三個變量`year`,`month`和`day`。 我正在分割生日字符串并分配它。 真正發生的是,如果我們輸入一個類似于 1994-6-24 的日期,它會被`–`分割并變成一個數組,如下面的代碼片段所示,該數組在 irb 中執行 ```rb >> "1994-6-24".split '-' => ["1994", "6", "24"] ``` 讓我們同時將此數組分配給變量`a`,`b`和`c`,如下所示 ```rb >> a, b, c = _ => ["1994", "6", "24"] ``` 如果你還記得`_`(下劃線)表示 irb 中最后獲得的結果。 因此,分配好之后,我們現在檢查`a`,`b`和`c`的值,如圖所示。 ```rb >> a => "1994" >> b => "6" >> c => "24" ``` 以類似的方式 ```rb year, month, day = bday.split('-') ``` `year`變量獲取年份部分,`month`獲取月份,`day`獲取日期。 確定已經獲得了特定日期的參數,我們可以繼續進行。 檢查以下語句 ```rb seconds = Time.now - Time.local(year, month, day) ``` 看到等號的右側,首先我們有`Time.now`可以獲取當前時間,從中減去使用`Time.local`創建的時間對象。 `Time.local`可用于創建固定在任何實例上的時間對象,該實例可以是過去,現在或將來。 我們將`year`,`month`和`day`傳遞給它以創建`Time`對象。 當我們將兩者都減去時會發生什么,我們得到了以秒為單位的差異,該差異存儲在等式左側的`seconds`變量中。 我們現在要做的就是將第二個轉換為幾天,這是下面的語句完成的 ```rb days = (seconds / 86400).round ``` 在這里,我們將秒除以 86400,將秒轉換為天。 我們可能會得到 378.567 天之類的值,要擺脫.567,我們使用舍入函數將其舍入,因此`(seconds / 86400).round`返回一個整齊的舍入值,人類安靜下來可以輕松讀取。 我們將值存儲在名為`days`的變量中。 最后,我們使用以下語句打印出我們已經生活了很多天的事實 ```rb puts "You have lived for #{days} days" ``` 好吧,就是這樣。 我想告訴我我使用`Time.local`函數發現的一件事,不是我們必須僅將數字傳遞給它,如圖所示 ```rb >> Time.local "2010", "5", "1" => Sat May 01 00:00:00 +0530 2010 ``` 我們可以傳遞一些人類友好的價值觀,如下所示。 而不是每月放置 5,我們使用 May。 ```rb >>Time.local "2010", "may", "1" => Sat May 01 00:00:00 +0530 2010 ``` 有時 Ruby 語言看起來像說英語一樣容易。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看