Skip to main content

Complete Persian date and time management with Keybit.ir API

Project description

آموزش جامع پکیج Persian Date Manager

فهرست مطالب

  1. معرفی پکیج
  2. نصب و راه‌اندازی
  3. کلاس‌های اصلی
  4. متدهای کاربردی
  5. مثال‌های عملی
  6. خطاها و عیب‌یابی
  7. کاربردهای پیشرفته

1. معرفی پکیج

1.1 هدف پکیج

پکیج Persian Date Manager یک کتابخانه پایتون برای کار با تاریخ و زمان شمسی است. این پکیج با استفاده از API سایت Keybit.ir اطلاعات کاملی از تاریخ شمسی، میلادی و قمری را در اختیار شما قرار می‌دهد.

1.2 ویژگی‌های اصلی

  • دریافت تاریخ و زمان شمسی
  • تبدیل به تاریخ میلادی و قمری
  • بررسی تعطیلی‌ها
  • محاسبه پیشرفت سال
  • اطلاعات طالع‌شناسی (حیوان سال، برج فلکی)
  • خروجی در فرمت‌های مختلف

1.3 موارد استفاده

  • برنامه‌های مدیریت زمان
  • سیستم‌های اتوماسیون اداری
  • اپلیکیشن‌های موبایل
  • وب‌سایت‌های فارسی
  • سیستم‌های گزارش‌گیری

2. نصب و راه‌اندازی

2.1 پیش‌نیازها

  • پایتون نسخه 3.7 یا بالاتر
  • دسترسی به اینترنت
  • کتابخانه requests

2.2 نصب پکیج

pip install persian-date-manager

2.3 بررسی نصب

import persian_date_manager
print(persian_date_manager.__version__)

ایجاد نمونه:
python
from persian_date_manager import PersianDateManager

# ایجاد نمونه با timeout پیش‌فرض
api = PersianDateManager()

# ایجاد نمونه با timeout مشخص
api = PersianDateManager(timeout=15)

این کلاس برای قالب‌بندی و نمایش زیبای اطلاعات استفاده می‌شود.

python
from persian_date_manager import PersianDateFormatter

formatter = PersianDateFormatter(api)

دریافت زمان 12 ساعته:
python
time_12h = api.get_12h_time()
print(time_12h)

time_24h = api.get_24h_time()
print(time_24h['full']['fa'])  # خروجی: "۲۰:۰۲:۵۴"

دریافت تاریخ کامل:
python
full_date = api.get_full_persian_date()
print(full_date)  # خروجی: "دوشنبه، ۰۳ آذر ۱۴۰۴"

دریافت اطلاعات سال:
python
year_info = api.get_year_info()
print(f"سال: {year_info['number']['fa']}")
print(f"نام سال: {year_info['name']}")
print(f"حیوان سال: {year_info['animal']}")

تبدیل به تاریخ میلادی:
python
gregorian = api.get_gregorian_date()
print(gregorian['usual']['fa'])

تبدیل به تاریخ قمری:
python
ghamari = api.get_ghamari_date()
print(ghamari['usual']['fa'])  # خروجی: "۱۴۴۷/۶/۳"

بررسی تعطیلی:
python
if api.is_holiday():
    print("امروز تعطیل است")
    holiday_info = api.get_holiday_info()
    print(holiday_info['text'])
else:
    print("امروز روز کاری است")


دریافت پیشرفت سال:
python
progress = api.get_year_progress()
print(f"{progress['passed_percent']}% از سال گذشته")
print(f"{progress['passed_days']} روز گذشته")
print(f"{progress['remaining_days']} روز باقی‌مانده")


دریافت حیوان سال:
python
animal = api.get_zodiac_animal()
print(animal)  # خروجی: "مار"


دریافت برج فلکی:
python
asterism = api.get_asterism()
print(asterism)  # خروجی: "قوس"



بررسی سال کبیسه:
python
if api.is_leap_year():
    print("سال جاری کبیسه است")
else:
    print("سال جاری غیر کبیسه است")


ایجاد سیستم اطلاع‌رسانی روزانه
python
from persian_date_manager import PersianDateManager

def daily_report():
    api = PersianDateManager()
    
    report = f"""
گزارش روزانه - سیستم مدیریت تاریخ
====================================
📅 تاریخ: {api.get_full_persian_date()}
⏰ زمان: {api.get_current_time_12h()}
🌍 منطقه زمانی: {api.get_timezone_info()['name']}
🍂 فصل: {api.get_season_info()['name']}

📊 وضعیت امروز:
• {'🎉 امروز تعطیل است' if api.is_holiday() else '💼 امروز روز کاری است'}
• {api.get_year_progress()['passed_percent']}% از سال گذشته
• حیوان سال: {api.get_zodiac_animal()}
• برج فلکی: {api.get_asterism()}

📅 تاریخ‌های معادل:
• میلادی: {api.get_gregorian_date()['usual']['fa']}
• قمری: {api.get_ghamari_date()['usual']['fa']}
    """
    
    return report

print(daily_report())


سیستم لاگ‌گیری تاریخ
python
import json
from datetime import datetime
from persian_date_manager import PersianDateManager

class DateLogger:
    def __init__(self, log_file='date_log.json'):
        self.api = PersianDateManager()
        self.log_file = log_file
    
    def log_entry(self, activity):
        log_data = {
            'timestamp': datetime.now().isoformat(),
            'persian_date': self.api.get_full_persian_date(),
            'time_24h': self.api.get_current_time_24h(),
            'is_holiday': self.api.is_holiday(),
            'activity': activity,
            'year_progress': self.api.get_year_progress()
        }
        
        try:
            with open(self.log_file, 'a', encoding='utf-8') as f:
                f.write(json.dumps(log_data, ensure_ascii=False) + '\n')
            return True
        except Exception as e:
            print(f"خطا در ذخیره لاگ: {e}")
            return False

# استفاده از سیستم لاگ‌گیری
logger = DateLogger()
logger.log_entry("شروع سیستم")
logger.log_entry("پردازش داده‌ها")

from persian_date_manager import PersianDateManager

class WeeklyPlanner:
    def __init__(self):
        self.api = PersianDateManager()
    
    def get_week_recommendations(self):
        recommendations = []
        
        # بررسی تعطیلی
        if self.api.is_holiday():
            recommendations.append("استراحت و زمان با خانواده")
        else:
            recommendations.append("فعالیت‌های کاری طبق برنامه")
        
        # بررسی فصل
        season = self.api.get_season_info()['name']
        if season == 'زمستان':
            recommendations.append("پوشیدن لباس گرم")
            recommendations.append("مصرف نوشیدنی‌های گرم")
        elif season == 'تابستان':
            recommendations.append("نوشیدن آب به مقدار کافی")
            recommendations.append("استفاده از کلاه و عینک آفتابی")
        
        # بررسی پیشرفت سال
        progress = self.api.get_year_progress()['passed_percent']
        if progress > 80:
            recommendations.append("بررسی اهداف سال و برنامه‌ریزی برای سال جدید")
        elif progress > 50:
            recommendations.append("بازبینی میانسالانه اهداف")
        
        return recommendations

# استفاده از برنامه‌ریز
planner = WeeklyPlanner()
recommendations = planner.get_week_recommendations()

print("پیشنهادهای این هفته:")
for i, rec in enumerate(recommendations, 1):
    print(f"{i}. {rec}")



تولید گزارش HTML
python
from persian_date_manager import PersianDateFormatter

def create_html_report():
    api = PersianDateManager()
    formatter = PersianDateFormatter(api)
    
    # تولید گزارش HTML
    html_content = formatter.format_as_html("گزارش تاریخ شمسی - شرکت نمونه")
    
    # ذخیره در فایل
    with open('date_report.html', 'w', encoding='utf-8') as f:
        f.write(html_content)
    
    print("گزارش HTML با موفقیت ایجاد شد")

create_html_report()


استفاده در برنامه وب
python
from flask import Flask, jsonify, render_template_string
from persian_date_manager import PersianDateManager

app = Flask(__name__)

@app.route('/')
def home():
    api = PersianDateManager()
    
    template = """
    <!DOCTYPE html>
    <html dir="rtl" lang="fa">
    <head>
        <meta charset="UTF-8">
        <title>اطلاعات تاریخ شمسی</title>
        <style>
            body { font-family: Tahoma; direction: rtl; padding: 20px; }
            .card { background: #f9f9f9; padding: 20px; margin: 10px; border-radius: 10px; }
        </style>
    </head>
    <body>
        <h1>اطلاعات تاریخ و زمان شمسی</h1>
        <div class="card">
            <h2>📅 {{ date }}</h2>
            <h2>⏰ {{ time }}</h2>
            <p>وضعیت: {{ status }}</p>
        </div>
    </body>
    </html>
    """
    
    return render_template_string(
        template,
        date=api.get_full_persian_date(),
        time=api.get_current_time_12h(),
        status="تعطیل" if api.is_holiday() else "کاری"
    )

@app.route('/api/date-info')
def date_info():
    api = PersianDateManager()
    return jsonify(api.get_complete_info())

if __name__ == '__main__':
    app.run(debug=True)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

persian_date_manager-1.2.0.tar.gz (13.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

persian_date_manager-1.2.0-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

Details for the file persian_date_manager-1.2.0.tar.gz.

File metadata

  • Download URL: persian_date_manager-1.2.0.tar.gz
  • Upload date:
  • Size: 13.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for persian_date_manager-1.2.0.tar.gz
Algorithm Hash digest
SHA256 1f8f3c3173284230f9492ad96a70250b02bf2ae3b5fc8bc4ac123fd4008a7145
MD5 5bb9261381a0e3941dcacee4597c97d4
BLAKE2b-256 f7f7cefc3e94c56cd798e6388093e1c8fb1dadf89fbfe8afeb3b93dbfa97dafa

See more details on using hashes here.

File details

Details for the file persian_date_manager-1.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for persian_date_manager-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8af8d0900169144346c4a8492464bf54475771566b70f4238dcc77114e04bccd
MD5 289e3b157835d8bb11ed1ae13edde0eb
BLAKE2b-256 55089030e094f103a5b8f17d4d2d2f145a453a5ec8a43862b43aea416e3eabb9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page