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 阅读(207) 评论(0)  编辑  收藏 所属分类: java数据结构和算法

只有注册用户登录后才能发表评论。


网站导航: