作者 主題: 請教: 將1年轉為毫秒的問題  (閱讀 5627 次)

0 會員 與 1 訪客 正在閱讀本文。

andrea523

  • 懷疑的國中生
  • **
  • 文章數: 62
    • 檢視個人資料
請教: 將1年轉為毫秒的問題
« 於: 2008-09-29 16:44 »

小弟我想將1年轉換成豪秒,
首先先將1天的毫秒計算出來
long day = 1000*3600*24

用Java跑出的結果是86400000沒錯

可是要轉換成1年
long year = 1000*3600*24*365

就會出現負數的1616567296

請問各位大大,這樣子相乘應該沒有超過long的範圍

為何會出現這個答案呢? 謝謝

andrea523

  • 懷疑的國中生
  • **
  • 文章數: 62
    • 檢視個人資料
回覆: 請教: 將1年轉為毫秒的問題
« 回覆 #1 於: 2008-09-29 17:53 »
long year = 1000*3600*24*365

由於1000*3600*24*365數字過大
Java會將此默認為Integer
所以只要改成在其中一個數字後面加個L(代表Long),
以下的expression就會是Long的結果。   ;D

long year = 1000l*3600*24*365;
« 上次編輯: 2008-09-29 18:00 由 andrea523 »

bonenkimo

  • 可愛的小學生
  • *
  • 文章數: 1
    • 檢視個人資料
回覆: 請教: 將1年轉為毫秒的問題
« 回覆 #2 於: 2008-11-24 22:47 »
 ;D

我的做法
long day = 365;
   long mounth = 12;
   long second = 1000*3600*24;
      
   long sum = day*mounth*second;
      
      System.out.println("總共"+sum);

不知對不對

ps.我剛來的  很嫩的新手..

andrea523

  • 懷疑的國中生
  • **
  • 文章數: 62
    • 檢視個人資料
回覆: 請教: 將1年轉為毫秒的問題
« 回覆 #3 於: 2008-12-17 14:34 »
;D

我的做法
long day = 365;
   long mounth = 12;
   long second = 1000*3600*24;
      
   long sum = day*mounth*second;
      
      System.out.println("總共"+sum);

不知對不對

ps.我剛來的  很嫩的新手..

如果你的sum是算year,那就錯啦...
沒有必要再乘mounth....
1000*3600*24是1天的時間,1整年是365天...所以1年是1000*3600*24*365.