2014年4月19日 星期六

求星期幾的計算法

今天翻閱 "Java 程式開發 349 例" 這本書時, 在字串那章看到一個輸入日期, 求星期幾的方法. 雖然可以用 Calendar 類別很快就可以求得, 但純用演算法求取倒很有趣, 說不定 Calendar 裡面也是這麼算的 :

public class test1 {
  public static void main(String[] args) {
    System.out.println(getDay(2014,4,19));  //輸出  : 六
    }
  public static String getDay(int y, int m, int d) {
    if (m==1||m==2) {m += 12; y--;}
    int week=d + 2*m + 3*(m+1)/5 + y + y/4 - y/100 + y/400 + 1;
    week=week % 7;
    String w="日一二三四五六".substring(week, week+1);
    return w;
    }
  }


沒有留言 :