روبیکا من : https://rubika.ir/artinkarimian3 سایت من : https://sites.google.com/view/artin-karimian
پروژه دوم پایتون : ساعت جهانی

خب برای این پروژه وسایلی که نیاز دارید :
خود برنامه پایتون
کتابخانه
tkinter
کتابخانه pytz
کتابخانه datetime

کتابخانه های لازم را نصب کنید و کد زیر را دخل آن وارد کنید .
import tkinter as tk
from tkinter import ttk
from datetime import datetime, timezone
import pytz
# ------------------- ساخت دیکشنری تمام مناطق زمانی ------------------- #
def build_timezones_dict():
"""
ایجاد دیکشنری شامل تمام مناطق زمانی در pytz
به همراه offset فعلی نسبت به UTC به صورت متنی
مثل: "Asia/Tehran (UTC+03:30)"
"""
timezones = {}
for tz_name in pytz.all_timezones:
tz = pytz.timezone(tz_name)
# استفاده از روش جدید و استاندارد برای زمان UTC
now_utc = datetime.now(timezone.utc)
now_local = now_utc.astimezone(tz)
offset_seconds = now_local.utcoffset().total_seconds()
hours = int(offset_seconds // 3600)
minutes = int((offset_seconds % 3600) // 60)
sign = "+" if offset_seconds >= 0 else "-"
abs_hours = abs(hours)
abs_minutes = abs(minutes)
offset_str = f"UTC{sign}{abs_hours:02d}:{abs_minutes:02d}"
display_name = f"{tz_name} ({offset_str})"
timezones[display_name] = tz_name
# مرتبسازی بر اساس نام برای نمایش مرتب در Combobox
sorted_dict = dict(sorted(timezones.items(), key=lambda x: x[0]))
return sorted_dict
timezone_display_to_tzname = build_timezones_dict()
# ------------------- منطق گرفتن ساعت ------------------- #
def get_time_in_timezone(tz_name: str) -> str:
"""دریافت تاریخ و ساعت فعلی در منطقه زمانی انتخابی"""
tz = pytz.timezone(tz_name)
now = datetime.now(tz)
return now.strftime("%Y-%m-%d %H:%M:%S")
# ------------------- رابط گرافیکی ------------------- #
class WorldClockApp:
def __init__(self, master):
self.master = master
master.title("نمایشگر ساعت جهانی")
master.geometry("650x250")
master.minsize(550, 250)
# فریم اصلی
main_frame = ttk.Frame(master, padding=10)
main_frame.pack(fill="both", expand=True)
# عنوان بالای برنامه
self.title_label = ttk.Label(
main_frame,
text="ساعت جهانی",
font=("Tahoma", 17, "bold")
)
self.title_label.pack(pady=(10, 15))
# فریم انتخاب منطقه زمانی
tz_frame = ttk.Frame(main_frame)
tz_frame.pack(fill="x", pady=(0, 10))
ttk.Label(
tz_frame,
text="منطقه زمانی را انتخاب کنید:",
font=("Tahoma", 11)
).pack(side="left")
self.tz_var = tk.StringVar()
self.tz_combobox = ttk.Combobox(
tz_frame,
textvariable=self.tz_var,
values=list(timezone_display_to_tzname.keys()),
width=50,
font=("Tahoma", 10)
)
self.tz_combobox.pack(side="left", padx=(10, 0), fill="x", expand=True)
# انتخاب پیشفرض: Asia/Tehran اگر موجود باشد
for display in timezone_display_to_tzname:
if "Asia/Tehran" in display:
self.tz_combobox.set(display)
break
# لیبل نمایش زمان
self.time_label = ttk.Label(
main_frame,
text="--:--:--",
font=("Consolas", 22, "bold"),
foreground="#00b33c"
)
self.time_label.pack(pady=20)
# دکمه خروج
ttk.Button(main_frame, text="خروج", command=master.quit).pack(pady=5)
# شروع بهروزرسانی ساعت
self.update_clock()
def update_clock(self):
"""بهروزرسانی ساعت هر ثانیه بر اساس منطقه انتخاب شده"""
chosen_display = self.tz_var.get()
if chosen_display in timezone_display_to_tzname:
tz_name = timezone_display_to_tzname[chosen_display]
current_time_str = get_time_in_timezone(tz_name)
else:
current_time_str = "منطقه زمانی نامعتبر"
self.time_label.config(text=current_time_str)
self.master.after(1000, self.update_clock)
# ------------------- اجرای برنامه ------------------- #
if __name__ == "__main__":
root = tk.Tk()
# DPI Awareness برای ویندوز (اختیاری، اگر نبود خطایی نده)
try:
from ctypes import windll
windll.shcore.SetProcessDpiAwareness(1)
except Exception:
pass
app = WorldClockApp(root)
root.mainloop()
خب کد را اجرا کنید ، صفحه پایین را می بینید .

حالا میتونیم کشور خودمون را انتخواب کنیم و ساعت دقیق همون کشور را برای شما به نمایش میگذارد .
برای دانلود همین پایتون یا فایل تبدیل شده به برنامه روی نوشته لینک بزنید و 15ثانیه صبر کنید و فایل را دریافت کنید .
اگر ایده یا پروژه ای دیگری میخواهید در نظر ها بنویسید .
مطلبی دیگر از این انتشارات
آموزش ساخت یک سرور با پایتون (سرور فایل)
مطلبی دیگر از این انتشارات
برنامه نویسی چیست؟ – همه چیز هایی که باید بدانید + کاربردها
مطلبی دیگر از این انتشارات
پروژه اول با پایتون : ردیابی شماره موبایل