HelloWorld 善戰者,求之于勢,不責于人;故能擇人而任勢。

          知止而后有定,定而后能靜,靜而后能安,安而后能慮,慮而后能得。物有本末,事有終始。知所先后,則近道矣。

            BlogJava :: 首頁 ::  :: 聯系 ::  :: 管理 ::
            167 隨筆 :: 1 文章 :: 40 評論 :: 0 Trackbacks
           1 
           2 public class ComputerWeek {
           3 
           4     /**
           5      * 計算某一個日期是星期幾
           6      * @param year 年
           7      * @param month 月
           8      * @param day 日
           9      * @return 星期
          10      */
          11     public int getWeek(int year, int month, int day) {
          12         // 首先我們知道2008-01-07是星期一
          13         int weeks[] = {1,2,3,4,5,6,7};
          14         int standardDay = getDaysFromAD(200817);
          15         int temps = getDaysFromAD(year,month,day);
          16         temps = temps - standardDay;
          17         if (temps >= 0) {
          18             temps %= 7;
          19             return weeks[temps];
          20         } else {
          21             temps %=7;
          22             temps += 7;
          23             temps %= 7;
          24             return weeks[temps];
          25         }
          26     }
          27     
          28     /**
          29      * 計算從公元1年1月1號 到這個日期的天數
          30      * @param year
          31      * @param month
          32      * @param day
          33      * @return
          34      */
          35     public int getDaysFromAD(int year, int month, int day) {
          36         int days = 0;
          37         for (int i = 1; i < year; i++) {
          38             if (isLeapYear(i)) {
          39                 days += 366;
          40             } else {
          41                 days += 365;
          42             }
          43         }
          44         for (int i = 1; i < month; i++) {
          45             if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12) {
          46                 days += 31;
          47             } else if (i == 2) {
          48                 if (isLeapYear(year)) {
          49                     days += 29;
          50                 } else {
          51                     days += 28;
          52                 }
          53             } else {
          54                 days += 30;
          55             }
          56         }
          57         days += day;
          58         return days;
          59     }
          60     
          61     /**
          62      * 判斷是否為閏年
          63      * @param year
          64      * @return
          65      */
          66     public boolean isLeapYear(int year) {
          67         if ((year % 4 == 0 && year % 100 != 0|| (year % 400 == 0)) {
          68             return true;
          69         } else {
          70             return false;
          71         }
          72     }
          73     
          74     public static void main(String args[]) {
          75         System.out.println(new ComputerWeek().getWeek(2008,12,31));
          76     }
          77 }
          78 


          </script>

          posted on 2008-01-10 16:54 helloworld2008 閱讀(224) 評論(0)  編輯  收藏 所屬分類: java數據結構和算法
          主站蜘蛛池模板: 抚宁县| 广灵县| 抚州市| 泽库县| 通化县| 清新县| 伊宁市| 仪陇县| 麻江县| 沅江市| 泰安市| 岳普湖县| 克拉玛依市| 徐州市| 日喀则市| 东兰县| 大厂| 汝阳县| 和硕县| 周宁县| 陕西省| 长兴县| 韶山市| 江达县| 德惠市| 濮阳市| 珠海市| 永靖县| 泾川县| 崇礼县| 巴林左旗| 张家港市| 德化县| 东山县| 穆棱市| 乌兰县| 清镇市| 响水县| 定兴县| 琼结县| 通化县|