Python Datetime: دليل شامل بأمثلة

Python Datetime: دليل شامل بأمثلة

عند العمل مع مشاريع البيانات في Python ، من المرجح أن تستخدم وظائف التاريخ والوقت. ستحتوي كل مجموعة بيانات تقريبًا ستعمل معها على عمود تاريخ ووقت تريد معالجته وفقًا لاحتياجاتك ومتطلبات المشروع.

لحسن الحظ ، تأتي Python مع وحدة مدمجة خاصة بها تسمى datetime والتي تسمح لك بتمثيل ومعالجة وتنفيذ العمليات باستخدام مثيلات التاريخ والوقت مثل التواريخ والأوقات ومجموعات الاثنين. سيساعدك إتقان وحدة التاريخ والوقت في Python على إجراء تحليلات متسلسلة زمنية أكثر قوة في مشروعاتك.

تعد وحدة التاريخ والوقت في Python أداة للتعامل مع التواريخ والأوقات والفترات الزمنية. يسمح لك بإجراء عمليات مختلفة في التواريخ والأوقات بطريقة مباشرة.

Python Datetime: دليل شامل بأمثلة

ملخص البرمجة - الكود المصدري والشفرة الثنائية على شاشة مطور البرامج. نسق أسود مع بناء جملة ملون.

باستخدام وحدة التاريخ والوقت في Python ، يمكنك بسهولة التعامل مع قيم التاريخ والوقت ، وإدارة المناطق الزمنية ، وإجراء العمليات الحسابية ، وحتى التعامل مع التنسيق والتحليل للعديد من التمثيلات. تجعل هذه الوظيفة وحدة التاريخ والوقت أداة أساسية في العديد من التطبيقات ، من معالجة البيانات إلى جدولة الأحداث وما بعدها.

قبل البدء في استخدام وحدة التاريخ والوقت في Python في مشروعاتك ، من الضروري فهم الفئات الأساسية الخاصة بها. في القسم أدناه ، سنلقي نظرة على الفئات الخمس الرئيسية لوحدة Python DateTime. دعنا ندخله!

جدول المحتويات

ما هي الفئات الخمس الرئيسية لوحدة Python Datetime؟

وحدة Python Datetime هي جزء من المكتبة القياسية التي توفر فصولاً للتعامل مع التواريخ والأوقات والمناطق الزمنية والمدد والعمل معها.

تتكون الوحدة من خمس فئات رئيسية:

  1. التاريخ والوقت

  2. تاريخ،

  3. وقت،

  4. Timedelta

  5. وحدة زمنية.

    سننظر في كل فصل متبوعًا بمثال حالات الاستخدام لمساعدتك على فهم المفهوم بشكل أفضل.

هو w لاستخدام فئة التاريخ والوقت

فئة Python Datetime هي الفئة الأكثر استخدامًا في الوحدة النمطية. إنه يمثل نقطة زمنية واحدة بسمات مثل السنة والشهر واليوم والساعة والدقيقة والثانية والميكروثانية.

تتضمن بعض العمليات الشائعة مع فئة Python Datetime ما يلي:

  • datetime.datetime.now ()

تتيح لك هذه الوظيفة الحصول على التاريخ والوقت الحاليين. فيما يلي مثال على استرداد التاريخ والوقت الحاليين:

import datetime

# Get the current date and time
now = datetime.datetime.now()

print("Current date and time: ", now)

سيؤدي هذا إلى إخراج التاريخ والوقت الحاليين في لحظة التنفيذ بالتنسيق YYYY-MM-DD HH: MM: SS.ssssss.

Python Datetime: دليل شامل بأمثلة

  • التاريخ والوقت

تتيح لك هذه الوظيفة إنشاء كائن تاريخ ووقت مخصص. فيما يلي مثال على استخدام datetime.datetime في التعليمات البرمجية الخاصة بك:

from datetime import date

# Create a custom date and time object
custom_date = datetime.datetime(2023, 5, 22, 17, 40)

print("Custom date and time: ", custom_date)

بالإضافة إلى الوظائف المذكورة أعلاه ، توفر فئة Datetime أيضًا طرقًا للعمل مع التاريخ والوقت مثل:

Python Datetime: دليل شامل بأمثلة

  • strftime () :

تسمح لك الطريقة بتنسيق كائنات التاريخ والوقت كسلسلة. فيما يلي مثال على طريقة strftime ():

import datetime

# Create a custom date and time object
custom_date = datetime.datetime(2023, 5, 22, 17, 40)

# Format the datetime object as a string
formatted_date = custom_date.strftime("%B %d, %Y, %H:%M")

print("Formatted date and time: ", formatted_date)

سيحول هذا الرمز كائن التاريخ والوقت إلى سلسلة:

Python Datetime: دليل شامل بأمثلة

  • strptime () :

تتيح لك هذه الوظيفة في فئة التاريخ والوقت تحليل سلسلة تمثل كائنات التاريخ والوقت في كائن تاريخ ووقت واحد. فيما يلي مثال على تحليل تاريخ مخزن كسلسلة لكائن تاريخ / وقت:

import datetime

# String representing a date and time
date_string = "May 22, 2023, 17:40"

# Parse the string into a datetime object
parsed_date = datetime.datetime.strptime(date_string, "%B %d, %Y, %H:%M")

print("Parsed date and time: ", parsed_date)

سيؤدي هذا إلى تحويل السلسلة إلى كائن التاريخ والوقت.

Python Datetime: دليل شامل بأمثلة

كيفية استخدام فئة التاريخ

تسمح لك فئة التاريخ بالتعامل حصريًا مع كائنات التاريخ (السنة والشهر واليوم). يمكنك إنشاء كائنات التاريخ بفئة التاريخ.

تتضمن بعض العمليات المشتركة مع فئة التاريخ ما يلي:

  • datetime.date.today ()

تتيح لك هذه الوظيفة في فئة التاريخ الحصول على التاريخ الحالي. فيما يلي مثال على استرداد التاريخ الحالي بفئة التاريخ:

import datetime

# Get the current date
today = datetime.date.today()

print("Today's date: ", today)

سيخرج كود Python هذا التاريخ الحالي في لحظة التنفيذ بالتنسيق YYYY-MM-DD.

Python Datetime: دليل شامل بأمثلة

في وقت كتابة هذا المقال ، كان التاريخ الحالي 2023-05-22.

  • التاريخ والوقت. التاريخ ()

تتيح لك هذه الوظيفة في فئة التاريخ إنشاء كائنات التاريخ. يوضح المثال إنشاء كائن تاريخ مخصص بوظيفة datetime.date ():

import datetime

# Create a custom date object
custom_date = datetime.date(2023, 5, 22)

print("Custom date: ", custom_date)

في دالة datetime.date () ، تقوم بتوفير السنة والشهر واليوم كوسيطات.

سينتج هذا البرنامج النصي 2023-05-22 ، نظرًا لأنك قمت بإنشاء كائن تاريخ مخصص لتاريخ 22 مايو 2023.

Python Datetime: دليل شامل بأمثلة

توفر فئة التاريخ أيضًا طرقًا مفيدة ، مثل:

  • يوم من أيام الأسبوع ()

ترجع هذه الطريقة في فئة التاريخ يوم الأسبوع (0 ليوم الاثنين ، و 1 ليوم الثلاثاء ، وما إلى ذلك). يوضح المثال التالي طريقة weekday ():

import datetime

# Create a custom date object
custom_date = datetime.date(2023, 5, 22)

# Get the day of the week
day_of_week = custom_date.weekday()

print("Day of the week: ", day_of_week)

في هذا المثال ، سيعيد custom_date.weekday () القيمة 0 لأن 22 مايو 2023 يوافق يوم الإثنين.

Python Datetime: دليل شامل بأمثلة

  • strftime ()

تسمح لك هذه الطريقة في فئة التاريخ بتنسيق كائن التاريخ كسلسلة . يوضح المثال التالي وظيفة strftime ():

import datetime

# Create a custom date object
custom_date = datetime.date(2023, 5, 22)

# Format the date object as a string
formatted_date = custom_date.strftime("%B %d, %Y")

print("Formatted date: ", formatted_date)

سيؤدي هذا إلى إخراج التاريخ بتنسيق "شهر يوم ، سنة".

Python Datetime: دليل شامل بأمثلة

  • ستربتايم ()

تسمح لك هذه الطريقة بتحليل سلسلة تمثل تاريخًا في كائن التاريخ. فيما يلي مثال على تحويل تاريخ سلسلة إلى كائن تاريخ:

import datetime

# String representing a date
date_string = "May 22, 2023"

# Parse the string into a date object
parsed_date = datetime.datetime.strptime(date_string, "%B %d, %Y").date()

print("Parsed date: ", parsed_date)

سيؤدي هذا إلى إخراج كائن التاريخ الذي تم إنشاؤه من سلسلة التاريخ.

Python Datetime: دليل شامل بأمثلة

كيفية استخدام فئة الوقت

تسمح لك فئة الوقت بالعمل مع مثيلات الوقت (ساعة ، دقيقة ، ثانية ، ميكرو ثانية). باستخدام فئة الوقت ، يمكنك إنشاء كائن وقت مخصص باستخدام datetime.time ().

يوضح المثال التالي إنشاء كائن وقت مخصص:

import datetime

# Create a custom time object
custom_time = datetime.time(17, 40)

print("Custom time: ", custom_time)

في دالة datetime.time () ، تقوم بتوفير الساعة والدقيقة كوسيطتين.

سينتج هذا البرنامج النصي 17:40:00 ، كما هو محدد في كود Python.

Python Datetime: دليل شامل بأمثلة

توفر فئة الوقت طرقًا مفيدة ، مثل:

  • strftime ()

تسمح لك هذه الطريقة بتنسيق كائن الوقت كسلسلة. فيما يلي مثال على هذه الوظيفة:

import datetime

# Create a custom time object
custom_time = datetime.time(17, 40)

# Format the time object as a string
formatted_time = custom_time.strftime("%H:%M")

print("Formatted time: ", formatted_time)

سيؤدي هذا إلى إخراج التوقيت المحلي بتنسيق "الساعة: الدقيقة".

Python Datetime: دليل شامل بأمثلة

  • ستربتايم ()

تتيح لك هذه الوظيفة تحليل سلسلة تمثل الوقت في كائن الوقت. يوضح المثال التالي هذه الوظيفة:

from datetime import time

# String representing a time
time_string = "17:40"

# Parse the string into a time object
parsed_time = datetime.datetime.strptime(time_string, "%H:%M").time()

print("Parsed time: ", parsed_time)

سيؤدي هذا إلى إخراج كائنات الوقت التي تم إنشاؤها من السلسلة الزمنية.

Python Datetime: دليل شامل بأمثلة

How to Use The Timedelta Class

The Timedelta class allows you to represent represents a duration or difference between two dates or times.

With Timedelta class, you can perform the following operations:

  • Calculate the difference between two dates or times

An example of calculating the difference between two dates is given below:

 import datetime

# Create two custom date objects
date1 = datetime.date(2023, 5, 22)
date2 = datetime.date(2023, 6, 1)

# Calculate the difference between the two dates
date_difference = date2 - date1

print("Difference between the dates is: ", date_difference.days, "days")

In this example, date_difference is a timedelta object representing the difference between date2 and date1. The .days property gives the number of days between the two dates.

Python Datetime: دليل شامل بأمثلة

  • Add or subtract a duration to a date or time

An example of adding a duration to a date is given below:

import datetime

# Create a custom date object
custom_date = datetime.date(2023, 5, 22)

# Create a duration of 10 days
duration = datetime.timedelta(days=10)

# Add the duration to the date
new_date = custom_date + duration

print("New date: ", new_date)

In this example, duration is a timedelta object representing a duration of 10 days. We use the + operator to add this duration to custom_date.

Python Datetime: دليل شامل بأمثلة

How to Use the Timezone Class

The Timezone class allows you to handle time zones and daylight saving time adjustments.

يمكنك إجراء العملية التالية باستخدام فئة المنطقة الزمنية:

  • إنشاء كائن المنطقة الزمنية

لإنشاء كائن منطقة زمنية ، يمكنك استخدام وظيفة datetime.timezone () . يوضح المثال التالي إنشاء كائن منطقة زمنية:

import datetime

# Create a timezone object for a timezone 2 hours ahead of UTC
two_hours_ahead = datetime.timezone(datetime.timedelta(hours=2))

print("Timezone object: ", two_hours_ahead)

في هذا المثال ، two_hours_ahead عبارة عن كائن منطقة زمنية يمثل منطقة زمنية تسبق التوقيت العالمي بساعتين (UTC).

سينتج هذا البرنامج النصي كائن منطقة زمنية مثل.

Python Datetime: دليل شامل بأمثلة

  • كائن بمنطقة زمنية محددة

لتحقيق ذلك ، يمكنك استخدام. استبدال وظيفة (tzinfo = tz) . يوضح المثال التالي هذه الوظيفة:

import datetime

# Create a naive datetime object
naive_datetime = datetime.datetime(2023, 5, 22, 17, 40)

# Create a timezone object for a timezone 2 hours ahead of UTC
two_hours_ahead = datetime.timezone(datetime.timedelta(hours=2))

# Convert the naive datetime object to an aware object
aware_datetime = naive_datetime.replace(tzinfo=two_hours_ahead)

print("Aware datetime object: ", aware_datetime)

في هذا المثال ، يعد naive_datetime كائن تاريخ ووقت لا يحتوي على أي معلومات عن المنطقة الزمنية. المتغير two_hours_ahead هو كائن منطقة زمنية يمثل منطقة زمنية تسبق التوقيت العالمي المنسق بساعتين.

يتم استخدام طريقة الاستبدال (tzinfo = two_hours_ahead) لإنشاء كائن تاريخ ووقت جديد بنفس التاريخ والوقت مثل naive_datetime ، ولكن مع ضبط tzinfo على two_hours_ahead.

Python Datetime: دليل شامل بأمثلة

تساعدك المنطقة الزمنية في الحفاظ على قيم زمنية دقيقة ومتسقة عند التعامل مع البيانات التي تمتد عبر مناطق زمنية متعددة.

لقد مررت ببعض أهم الوظائف في وحدة التاريخ والوقت في بايثون . في القسم التالي ، سنقوم بتنفيذ بعض الوظائف المذكورة أعلاه لدراسة حالة والتي ستمنحك نظرة عملية على تنفيذ وحدة التاريخ والوقت هذه في مشاريعك.

تنفيذ وظائف وحدة التاريخ والوقت لدراسة حالة

لنأخذ دراسة حالة حيث حصلنا على مجموعة بيانات من الأحداث المختلفة التي وقعت في جميع أنحاء العالم. تحتوي مجموعة البيانات على تواريخ وأوقات مقابلة بتنسيق سلسلة.

مهمتنا هي تحويل هذه التواريخ والأوقات إلى كائنات DateTime وتنفيذ العمليات عليها حسب الحاجة.

لنفترض أننا حصلنا على مجموعة البيانات التالية:

Python Datetime: دليل شامل بأمثلة

إذا تحققنا من أنواع بيانات المتغير ، فسنرى أنه يتم تخزين التاريخ والوقت كسلسلة. لذلك ، قبل إجراء أي تحليل ، يتعين علينا تحويل أعمدة التاريخ والوقت إلى تنسيق مناسب.

للقيام بذلك ، يمكننا استخدام الكود التالي:

import datetime

# Convert 'Date' and 'Time' strings into datetime objects
df['DateTime'] = df['Date'] + ' ' + df['Time']
df['DateTime'] = df['DateTime'].apply(lambda x: datetime.datetime.strptime(x, "%b %d, %Y %H:%M"))

print(df)

في هذه الكتلة من التعليمات البرمجية ، نقوم أولاً بإنشاء عمود جديد "DateTime" في DataFrame الخاص بك عن طريق ربط عمودي "التاريخ" و "الوقت". بعد ذلك ، نطبق دالة datetime.strptime على كل قيمة في هذا العمود الجديد لتحويل سلاسل التاريخ والوقت إلى كائنات التاريخ والوقت. أخيرًا ، نقوم بطباعة DataFrame لرؤية النتيجة.

Python Datetime: دليل شامل بأمثلة

الشيء التالي الذي نود فعله هو حساب الفرق بين حدثين. للقيام بذلك يمكننا استخدام الكود التالي:

duration = df.loc[1, 'DateTime'] - df.loc[0, 'DateTime']
print("Duration between Event1 and Event2: ", duration)

سيحسب نص Python هذا المدة بين "Event1" و "Event2".

Python Datetime: دليل شامل بأمثلة

أخيرًا ، دعنا نحول كائنات التاريخ والوقت إلى منطقة زمنية مختلفة. متى يمكن تحقيق ذلك باستخدام وظائف المنطقة الزمنية في وحدة التاريخ والوقت.

# Create a timezone object for UTC
utc_tz = datetime.timezone(datetime.timedelta(0))

# Convert the datetime objects into UTC
df['DateTime_UTC'] = df['DateTime'].apply(lambda x: x.replace(tzinfo=utc_tz))

print(df)

في هذا الكود ، نقوم بإنشاء كائن منطقة زمنية لـ UTC. بعد ذلك ، نقوم بإنشاء عمود جديد في DataFrame لدينا باسم "DateTime_UTC" من خلال تطبيق دالة lambda على عمود "DateTime" الخاص بنا. سيؤدي هذا إلى استبدال معلومات المنطقة الزمنية لكل كائن تاريخ / وقت بالتوقيت العالمي المنسق (UTC).

Python Datetime: دليل شامل بأمثلة

من خلال دراسة الحالة الموضحة أعلاه ، سترى كيف تعمل الوظائف المختلفة التي توفرها وحدة DateTime معًا للتعامل مع التواريخ والأوقات بتنسيق مناسب.

الآن بعد أن أصبحت معتادًا على بعض الوظائف في وحدة التاريخ والوقت ، دعنا نمضي قدمًا ونلقي نظرة على بعض الوظائف الإضافية التي سترغب في استخدامها أثناء قيامك بمشاريع أكثر تعقيدًا.

بصرف النظر عن الوظائف المذكورة أعلاه ، هناك العديد من الوظائف المفيدة التي يمكنك استخدامها حسب المشكلة المطروحة. غالبًا ما يحتفظ مطورو Python بصفحة التوثيق مفتوحة للبحث عن الوظائف التي يمكن أن تلبي احتياجاتك. ونقترح عليك أن تفعل الشيء نفسه!

وظائف التاريخ والوقت الإضافية

في هذا القسم ، سنناقش الوظائف الإضافية في وحدة التاريخ والوقت في بايثون . يتضمن ذلك استرداد أسماء أيام الأسبوع والشهر وأيام الأسبوع ، جنبًا إلى جنب مع وظيفة ctime () .

كيفية استرداد أيام الأسبوع من تاريخ

تأتي وحدة التاريخ والوقت مع دالة من أيام الأسبوع () ، والتي تُرجع يوم الأسبوع كعدد صحيح (حيث يكون يوم الاثنين 0 والأحد هو 6).

لاستخدام هذه الوظيفة ، يمكنك تسميتها على كائن تاريخ أو تاريخ.

import datetime

today = datetime.date.today()
weekday_number = today.weekday()

print(weekday_number)

يتم عرض إخراج الكود أعلاه في الصورة أدناه:

Python Datetime: دليل شامل بأمثلة

التاريخ المحلي الحالي هو 23/5/2020 ويوم الأسبوع هو الاثنين.

كيفية استرداد أسماء الشهر وأيام الأسبوع من تاريخ

يسمح لك datetime أيضًا باسترداد اسم الشهر واليوم من الأسبوع.

يمكنك استخدام الدالة strftime () ، التي تعمل على تنسيق التاريخ أو التاريخ والوقت كسلسلة.

فيما يلي مثال على كيفية استخدام الدالة strftime () للحصول على اسم الشهر واليوم من الأسبوع:

import datetime

today = datetime.date.today()
weekday_name = today.strftime('%A')
month_name = today.strftime('%B')

print(weekday_name)
print(month_name)

سيقوم هذا الرمز بطباعة اسم يوم الأسبوع واسم الشهر في الإخراج.

Python Datetime: دليل شامل بأمثلة

كيفية استخدام وظيفة Ctime

ترجع الدالة ctime () في الوحدة النمطية datetime تمثيل سلسلة لكائن التاريخ أو التاريخ والوقت ، بتنسيق "Day Mon DD HH: MM: SS YYYY".

ctime هي طريقة لكائن التاريخ والوقت ، وليست وظيفة قائمة بذاتها.

فيما يلي مثال على استخدام وظيفة ctime في التعليمات البرمجية الخاصة بك:

import datetime

now = datetime.datetime.now()
formatted_date = now.ctime()

print(formatted_date)

سيعيد الكود أعلاه تمثيل سلسلة من كائن التاريخ.

Python Datetime: دليل شامل بأمثلة

لمعرفة المزيد حول استخدام بيانات السلاسل الزمنية ، ألق نظرة على الفيديو التالي:

افكار اخيرة

كمبرمج بايثون ، فإن إتقان وحدة التاريخ والوقت أمر مهم. إنها مجموعة أدوات تمكنك من التعامل مع التواريخ والأوقات والفترات الزمنية. هذه هي العناصر التي ستواجهها كثيرًا في بيانات العالم الحقيقي.

ستحتاج إلى هذه الوحدة لتحويل السلاسل إلى كائنات التاريخ والوقت ، ومعالجة تحويلات المنطقة الزمنية ، وتنفيذ العمليات في التواريخ والأوقات.

من خلال تعلم كيفية استخدام وحدة التاريخ والوقت ، ستكون مستعدًا بشكل أفضل للتعامل مع هذه المهام في مشاريعك الخاصة!


ما هي الذات في بايثون: أمثلة من العالم الحقيقي

ما هي الذات في بايثون: أمثلة من العالم الحقيقي

ما هي الذات في بايثون: أمثلة من العالم الحقيقي

كيفية حفظ وتحميل ملف RDS في R.

كيفية حفظ وتحميل ملف RDS في R.

ستتعلم كيفية حفظ وتحميل الكائنات من ملف .rds في R. ستغطي هذه المدونة أيضًا كيفية استيراد الكائنات من R إلى LuckyTemplates.

تمت إعادة النظر في أول N أيام عمل - حل لغة ترميز DAX

تمت إعادة النظر في أول N أيام عمل - حل لغة ترميز DAX

في هذا البرنامج التعليمي للغة ترميز DAX ، تعرف على كيفية استخدام وظيفة الإنشاء وكيفية تغيير عنوان القياس ديناميكيًا.

اعرض الرؤى باستخدام تقنية المرئيات الديناميكية المتعددة الخيوط في LuckyTemplates

اعرض الرؤى باستخدام تقنية المرئيات الديناميكية المتعددة الخيوط في LuckyTemplates

سيغطي هذا البرنامج التعليمي كيفية استخدام تقنية Multi Threaded Dynamic Visuals لإنشاء رؤى من تصورات البيانات الديناميكية في تقاريرك.

مقدمة لتصفية السياق في LuckyTemplates

مقدمة لتصفية السياق في LuckyTemplates

في هذه المقالة ، سأقوم بتشغيل سياق عامل التصفية. يعد سياق عامل التصفية أحد الموضوعات الرئيسية التي يجب على أي مستخدم LuckyTemplates التعرف عليها في البداية.

أفضل النصائح في استخدام التطبيقات في خدمة LuckyTemplates عبر الإنترنت

أفضل النصائح في استخدام التطبيقات في خدمة LuckyTemplates عبر الإنترنت

أريد أن أوضح كيف يمكن لخدمة تطبيقات LuckyTemplates عبر الإنترنت أن تساعد في إدارة التقارير والرؤى المختلفة التي تم إنشاؤها من مصادر مختلفة.

تحليل تغييرات هامش الربح بمرور الوقت - التحليلات باستخدام LuckyTemplates و DAX

تحليل تغييرات هامش الربح بمرور الوقت - التحليلات باستخدام LuckyTemplates و DAX

تعرف على كيفية إجراء تغييرات في هامش الربح باستخدام تقنيات مثل قياس التفرع والجمع بين صيغ DAX في LuckyTemplates.

أفكار التجسيد لذاكرة التخزين المؤقت للبيانات في DAX Studio

أفكار التجسيد لذاكرة التخزين المؤقت للبيانات في DAX Studio

سيناقش هذا البرنامج التعليمي أفكار تجسيد مخازن البيانات وكيفية تأثيرها على أداء DAX ​​في توفير النتائج.

إعداد تقارير الأعمال باستخدام LuckyTemplates

إعداد تقارير الأعمال باستخدام LuckyTemplates

إذا كنت لا تزال تستخدم Excel حتى الآن ، فهذا هو أفضل وقت لبدء استخدام LuckyTemplates لاحتياجات إعداد تقارير الأعمال الخاصة بك.

ما هي بوابة LuckyTemplates؟ كل شيئ ترغب بمعرفته

ما هي بوابة LuckyTemplates؟ كل شيئ ترغب بمعرفته

ما هي بوابة LuckyTemplates؟ كل شيئ ترغب بمعرفته