在Rails中,我將日期保存在一個實例變量中。我需要在十年之前抓住它。如果@date.year= 1968
那麼我需要返回1960
。我會怎麼做?在Ruby中十年的第一年的圓整日期
1
A
回答
6
您可以通過多種方式來實現這一點。正如所建議的那樣,您始終可以使用除數的整數除法和截斷餘數。所以1968/10
返回196
,如果你乘以10
,它會給你1960
。或者乾脆,
@date.year = @date.year/10 * 10
@date.year
=> 1960
我更喜歡使用模塊化算法的方法。如果你這樣做@date.year % 10
,如果你除以10
然後你就可以在一年中減去,像這樣它會返回餘:
@date.year = @date.year - (@date.year % 10)
@date.year
=> 1960
我喜歡的原因,後者是因爲整數除法截斷餘可能不是某些東西這對每個看着你的代碼的人都是顯而易見的。但是,模塊化算法在所有編程語言中通常都是相同的。
請記住,如果您要更改日期,則需要使用相應的method。
@date.change(:year => 1960)
2
乘以10.
1.9.3-p286 :001 > 1855/10
=> 185
1.9.3-p286 :002 > 185 * 10
=> 1850
之所以這樣工作(在Ruby和在C/C++,Python和可能許多其他語言)由10執行整數除法,然後是整數除法將總是截斷餘數。然而,如果你除以浮點數,情況就不會如此。
3
只是乘除整數:儘量
+0
哈!現在看起來如此明顯,但我只是假設那會讓我回到我開始的時候。所以我想/ 10然後再乘以10 ...然後我會得到這個十年......等等等等。忘了整數規則。 –
相關問題
- 1. 轉換的一年日期
- 2. 如何獲得第一日期(月,季度,半年度,年度)
- 3. 識別一週中相同日期的年份(例如1994年,2005年,2011年)
- 4. 如何在Objective-C中獲得這十年的第一個和最後一年?
- 5. MYSQL - 更改日期的一年二○二○年至2011年
- 6. 在Java中將年份和日期(例如2013216 = 2013年第216天)轉換爲完整日期
- 7. 如何獲取當年第一個星期一的日期(php)?
- 8. 從周和年獲取日期 - 日期必須是一年中的第一天 - sql
- 9. 如何在SQL Server中創建數十年的日期維度?
- 10. 如何與另一日期(月/年)比較日期(月/年)
- 11. javascript日期(年)
- 12. 默認日期年份爲1970年,在
- 13. SQL查詢,其中()日期的年爲$一年
- 14. 選擇一年中的所有日期
- 15. Perl中的XPath:日期一年
- 16. 在一年之內的日期查詢
- 17. SQL日期範圍年初至上一個月的上一年和上一年
- 18. 將一年的十進制日期轉換爲時間戳
- 19. 的Python - 熊貓:構建日期一年,週週的年份和日期的
- 20. 比較的一年的結束日期和今年的開始日期+ 1
- 21. 獲取特定年份的第一個星期日期
- 22. JS datepicker能夠:時間,日期,日期時間,星期幾,一週中的一年,一年中的其他等
- 23. Javascript複製日期+一年
- 24. 日期請求一年場
- 25. 添加一年至日期
- 26. 返回日期一年
- 27. 轉換一年一年的天壓延日期紅寶石
- 28. 日期,月日,年的日期格式
- 29. 如何從groovy中的日期中提取一年的日期
- 30. WPF日曆時DISPLAYMODE是一年或十年
任何辦法,使返回日期,而不是一個Fixnum? –
你想要的月份/日期部分是什麼?和之前一樣? – sunnyrjuneja
是的,這並不重要,我已經在上面運行了'.beginning_of_year'。我現在只對這一年感興趣。 –