Commit 16f8a2097fe6f6164877c47b8d0c50c9e3fdd49a
1 parent
d5acea51
Removed useless code from 19
Showing
1 changed file
with
5 additions
and
50 deletions
19.py
@@ -38,50 +38,6 @@ class Date: | @@ -38,50 +38,6 @@ class Date: | ||
38 | def isLeap(year): | 38 | def isLeap(year): |
39 | return (year % 4 == 0) and ((year % 100 != 0) or (year % 400 == 0)) | 39 | return (year % 4 == 0) and ((year % 100 != 0) or (year % 400 == 0)) |
40 | 40 | ||
41 | -def calcNumDays(start,end): | ||
42 | - days = 0 | ||
43 | - currentMonth = start.month | ||
44 | - currentDay = start.day | ||
45 | - for year in range(start.year+1,end.year): | ||
46 | - if(isLeap(year)): | ||
47 | - days += 366 | ||
48 | - else: | ||
49 | - days += 365 | ||
50 | - | ||
51 | - leap = 0 | ||
52 | - # Beginning | ||
53 | - year = start.year | ||
54 | - if(isLeap(year)): | ||
55 | - leap = 1 | ||
56 | - | ||
57 | - for month in range(start.month+1, DEC+1): | ||
58 | - if(month in MONTHS_31): | ||
59 | - days += 31 | ||
60 | - elif(month == FEB): | ||
61 | - days += 28 | ||
62 | - else: | ||
63 | - days += 30 | ||
64 | - | ||
65 | - days += (31 - start.day + 1 + leap) | ||
66 | - | ||
67 | - leap = 0 | ||
68 | - # End | ||
69 | - year = end.year | ||
70 | - if(isLeap(year)): | ||
71 | - leap = 1 | ||
72 | - | ||
73 | - for month in range(JAN,end.month): | ||
74 | - if(month in MONTHS_31): | ||
75 | - days += 31 | ||
76 | - elif(month == FEB): | ||
77 | - days += 28 | ||
78 | - else: | ||
79 | - days += 30 | ||
80 | - | ||
81 | - days += (end.day + leap) | ||
82 | - | ||
83 | - return days | ||
84 | - | ||
85 | def getMonthLimit(month,year): | 41 | def getMonthLimit(month,year): |
86 | limit = 0 | 42 | limit = 0 |
87 | if(month in MONTHS_31): | 43 | if(month in MONTHS_31): |
@@ -96,7 +52,7 @@ def getMonthLimit(month,year): | @@ -96,7 +52,7 @@ def getMonthLimit(month,year): | ||
96 | 52 | ||
97 | return limit | 53 | return limit |
98 | 54 | ||
99 | -def SundaysFirstOfMonth(start,initial,numDays): | 55 | +def SundaysFirstOfMonth(start,end,initial): |
100 | sundays = 0 | 56 | sundays = 0 |
101 | currentDay = start.day | 57 | currentDay = start.day |
102 | currentMonth = start.month | 58 | currentMonth = start.month |
@@ -105,7 +61,9 @@ def SundaysFirstOfMonth(start,initial,numDays): | @@ -105,7 +61,9 @@ def SundaysFirstOfMonth(start,initial,numDays): | ||
105 | 61 | ||
106 | limit = getMonthLimit(currentMonth, currentYear) | 62 | limit = getMonthLimit(currentMonth, currentYear) |
107 | 63 | ||
108 | - for i in range(0,numDays): | 64 | + while True: |
65 | + if(end.day == currentDay and end.month == currentMonth and end.year == currentYear): | ||
66 | + return sundays | ||
109 | if (currentDay > limit): | 67 | if (currentDay > limit): |
110 | currentMonth += 1 | 68 | currentMonth += 1 |
111 | currentDay = 1 | 69 | currentDay = 1 |
@@ -120,15 +78,12 @@ def SundaysFirstOfMonth(start,initial,numDays): | @@ -120,15 +78,12 @@ def SundaysFirstOfMonth(start,initial,numDays): | ||
120 | currentDay += 1 | 78 | currentDay += 1 |
121 | currentWeekday = (currentWeekday + 1) % 7 | 79 | currentWeekday = (currentWeekday + 1) % 7 |
122 | 80 | ||
123 | - return sundays | ||
124 | - | ||
125 | strDateEnd = sys.argv[1].split('/') | 81 | strDateEnd = sys.argv[1].split('/') |
126 | 82 | ||
127 | dateStart = Date(1,1,1901) | 83 | dateStart = Date(1,1,1901) |
128 | dateEnd = Date(int(strDateEnd[0]),int(strDateEnd[1]),int(strDateEnd[2])) | 84 | dateEnd = Date(int(strDateEnd[0]),int(strDateEnd[1]),int(strDateEnd[2])) |
129 | 85 | ||
130 | initialDay = TUE | 86 | initialDay = TUE |
131 | -numDays = calcNumDays(dateStart,dateEnd) | ||
132 | -numSundays = SundaysFirstOfMonth(dateStart,initialDay,numDays) | 87 | +numSundays = SundaysFirstOfMonth(dateStart,dateEnd,initialDay) |
133 | 88 | ||
134 | print "Result is: " + str(numSundays) | 89 | print "Result is: " + str(numSundays) |