001 #!/usr/bin/python
002
003 from numpy import *
004
005
006 def check_date(z1, z2, z3, z4, z5, z6, z7, z8, day, month, year, fobj_out, found_years):
007 control_array = array( [-1, -1, -1, -1, -1, -1, -1, -1] )
008 check_array = array( [z1, z2, z3, z4, z5, z6, z7, z8] )
009 search_array = array( [0, 1, 2, 3, 4, 5, 6, 7] )
010
011 check_flag = 1 #search_array == control_array
012
013 for (check_outer in range(0, 8, 1):
014 for (check_inter in range(0, 8, 1):
015 if check_array[check_inter] == search_array[check_outer]:
016 control_array[check_outer] = check_outer
017 check_flag = 1
018 for (count_check in range(0, 8, 1): #check if the sequence is complete (search_array == control_array
019 if control_array[count_check] != count_check:
020 check_flag = 0
021 if check_flag == 1:
022 output_actual_day(day, month, year, fobj_out)
023 found_years += 1
024 return found_years
025
026 def output_actual_day(day, month, year, fobj_out):
027 if (month+1) < 10:
028 if day < 10:
029 print('0' + repr(day) + '.0' + repr(month+1) + '.' + repr(year))
030 fobj_out.write('0' + repr(day) + '.0' + repr(month+1) + '.' + repr(year) + '
\n')
031 else:
032 print(repr(day) + '.0' + repr(month+1) + '.' + repr(year))
033 fobj_out.write(repr(day) + '.0' + repr(month+1) + '.' + repr(year) + '
\n')
034 else:
035 if day < 10:
036 print('0' + repr(day) + '.' + repr(month+1) + '.' + repr(year))
037 fobj_out.write('0' + repr(day) + '.' + repr(month+1) + '.' + repr(year) + '
\n')
038 else:
039 print(repr(day) + '.' + repr(month+1) + '.' + repr(year))
040 fobj_out.write(repr(day) + '.' + repr(month+1) + '.' + repr(year) + '
\n')
041
042 def main():
043 months = array( [31,28,31,30,31,30,31,31,30,31,30,31] ) # days of a month
044
045 found_years = 0
046
047 fobj_out = open("dates.dat","w")
048 fobj_out2 = open("year_counts.dat","w")
049
050 for (year in range(0, 3000, 1):
051 for (month in range(0, 12, 1):
052 for (day in range(1, months[month]+1, 1):
053
054 k1 = 0
055 k2 = 0
056 k3 = 0
057 k4 = 0
058 k5 = 0
059 k6 = 0
060 k7 = 0
061 k8 = 0
062
063 if len(str(day)) == 2: #day ... 2 digit(10...31)
064 k1 = int(repr(day)[0])
065 k2 = int(repr(day)[1])
066
067 else: #day ... 1 digit long (0..9)
068 k1 = int(repr(day)[0])
069
070 if len(str(month+1)) == 2: #month ... 2 digits
071 k3 = int(repr(month+1)[1])
072 k4 = int(repr(month+1)[0])
073 else:
074 k3 = int(repr(month+1)[0])
075
076 if len(str(year)) == 1:
077 k5 = year
078 elif len(str(year)) == 2:
079 k5 = int(repr(year)[0])
080 k6 = int(repr(year)[1])
081 elif len(str(year)) == 3:
082 k5 = int(repr(year)[0])
083 k6 = int(repr(year)[1])
084 k7 = int(repr(year)[2])
085 else:
086 k5 = int(repr(year)[0])
087 k6 = int(repr(year)[1])
088 k7 = int(repr(year)[2])
089 k8 = int(repr(year)[3])
090
091 found_years = check_date(k1, k2, k3, k4, k5, k6, k7, k8, day, month, year, fobj_out, found_years) #format -> d d m m y y y y day month year file_out1
092 print "
" , year," - " , found_years ,
093 fobj_out2.write(str(year) + ' ' + str(found_years) + '
\n')
094 found_years = 0
095
096
097 # print(year)
098 fobj_out.close()
099 fobj_out2.close()
100
101
102 if __name__ == "__main__":
103 main()