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數據結構和算法
          主站蜘蛛池模板: 淮南市| 定兴县| 天津市| 广宗县| 绥阳县| 塔河县| 宁南县| 澄迈县| 巫溪县| 英山县| 龙门县| 漳平市| 辽阳市| 宜川县| 宁德市| 寻甸| 大余县| 罗城| 东阿县| 仲巴县| 绥芬河市| 清河县| 徐汇区| 北海市| 高雄县| 台南市| 泗水县| 兰州市| 延边| 吉林省| 武穴市| 德保县| 西林县| 柘城县| 尤溪县| 镇江市| 白银市| 彭山县| 五常市| 枣强县| 康马县|