Advertisement
Guest User

Untitled

a guest
Jul 21st, 2021
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.90 KB | None | 0 0
  1. from tkinter import *
  2. from tkinter import messagebox
  3. from calendar import isleap
  4.  
  5. def is_valid(input):
  6.     if input.isdigit():
  7.         try:
  8.             if len(input) > 1:
  9.                 if input[0] == "0":
  10.                     return False
  11.             if int(input) < 10000:
  12.                 return True
  13.             else:
  14.                 return False
  15.         except:
  16.             return False
  17.     elif input == "":
  18.         return True
  19.     else:
  20.         return False
  21.  
  22. def get_leap_years():
  23.     from_year = from_entry.get();
  24.     to_year = to_entry.get();
  25.     try:
  26.         from_year = int(from_year)
  27.     except:
  28.         messagebox.showerror('Virhe', '"Vuodesta"-kentän arvo ei kelpaa')
  29.         return
  30.     try:
  31.         to_year = int(to_year)
  32.     except:
  33.         messagebox.showerror('Virhe', '"Vuoteen"-kentän arvo ei kelpaa')
  34.         return
  35.     if from_year > to_year:
  36.         messagebox.showerror('Virhe', '"Vuodesta"-kentän arvon pitää olla pienempi tai yhtä suuri kuin "Vuoteen"-kentä arvo')
  37.         return
  38.     leap_years = []
  39.     for year in range(from_year, to_year+1):
  40.         if isleap(year): leap_years.append(year)
  41.     leap_years_text_box.config(state='normal')
  42.     leap_years_text_box.delete('1.0', 'end');
  43.     leap_years_text_box.insert('end', leap_years);
  44.     leap_years_text_box.config(state='disabled')
  45.  
  46. window = Tk()
  47. window.title('Karkausvuodet')
  48. window.geometry('320x240')
  49.  
  50. validate_entry = window.register(is_valid)
  51.  
  52. years_frame = Frame(window)
  53.  
  54. from_frame = LabelFrame(years_frame, text="Vuodesta")
  55. from_entry = Entry(from_frame, justify="center", width=6, validate="key", validatecommand=(validate_entry, '%P'))
  56. from_entry.insert(0,'1901')
  57. from_entry.pack(fill="x", expand="yes", padx=3, pady=3)
  58. from_frame.pack(side=LEFT, ipadx=2, padx=5, pady=3)
  59.  
  60. to_frame = LabelFrame(years_frame, text="Vuoteen")
  61. to_entry = Entry(to_frame, justify="center", width=6, validate="key", validatecommand=(validate_entry, '%P'))
  62. to_entry.insert(0,'2000')
  63. to_entry.pack(fill="x", expand="yes", padx=3, pady=3)
  64. to_frame.pack(side=RIGHT, ipadx=2, padx=5, pady=3)
  65.  
  66. years_frame.pack(padx=5, pady=6)
  67.  
  68. get_leap_years_button = Button(window, bg="powderblue", text="Hae karkausvuodet", command=get_leap_years)
  69. get_leap_years_button.pack(fill="both", padx=5, pady=6)
  70.  
  71. leap_years_frame = LabelFrame(window, text="Karkausvuodet ajanjaksolla")
  72.  
  73. leap_years_scrollbar = Scrollbar(leap_years_frame, orient='vertical')
  74. leap_years_scrollbar.pack(side=RIGHT, fill="y", expand="yes", padx=0, pady=3)
  75.  
  76. leap_years_text_box = Text(leap_years_frame, state='normal', wrap=WORD)
  77. leap_years_text_box.pack(side=LEFT, fill="both", expand="yes", padx=3, pady=3)
  78.  
  79. leap_years_scrollbar.config(command=leap_years_text_box.yview);
  80. leap_years_text_box.config(state='disabled', yscrollcommand=leap_years_scrollbar.set)
  81.  
  82. leap_years_frame.pack(fill="both", expand="yes", padx=5, pady=6)
  83.  
  84. get_leap_years()
  85.  
  86. window.mainloop()
  87.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement