Skip to content

11. Date & Time — تاریخ اور وقت

Difficulty: Intermediate — متوسط
Time: ~30 minutes


Importing — درآمد

درآمد {
    تاریخ, وقت, تاریخ_وقت, مدت, ہجری, ٹائمر,
    آج, ابھی, مہر_وقت, کبیسہ_سال, دنوں_کا_فرق,
    عیسوی_سے_ہجری, ہجری_سے_عیسوی,
    مہینہ_نام, دن_نام,
    ہجری_مہینے, عیسوی_مہینے, ہفتے_کے_دن, نیند
} سے "اردو/تاریخ";

تاریخ — Gregorian Date

// Today's date
متغیر آج_ت = تاریخ.آج();
لکھو(آج_ت.سال);          // 2026
لکھو(آج_ت.مہینہ);         // 5
لکھو(آج_ت.دن);            // 30
لکھو(آج_ت.دن_نام);        // ہفتہ
لکھو(آج_ت.مہینہ_نام);     // مئی
لکھو(آج_ت.کبیسہ);         // False (not a leap year)

// Specific date
متغیر ت = نیا تاریخ(2024, 3, 15);
لکھو(متن(ت));              // 2024-03-15

// Parse from string
متغیر ت2 = تاریخ.پارس("2024-03-15");
لکھو(ت2.مہینہ_نام);       // مارچ

Formatting — فارمیٹنگ:

متغیر آج_ت = تاریخ.آج();
لکھو(آج_ت.فارمیٹ("%d/%m/%Y"));    // 30/05/2026
لکھو(آج_ت.فارمیٹ("%B %Y"));       // مئی 2026
لکھو(آج_ت.اردو_فارمیٹ());          // 30 مئی 2026
لکھو(متن(آج_ت));                    // 2026-05-30  (ISO format)

اردو: .فارمیٹ() Python strftime کے نمونے قبول کرتا ہے۔ .اردو_فارمیٹ() خودبخود اردو نام لگاتا ہے۔


مدت — Duration

مدت represents a span of time. Parameters: دن, گھنٹے, منٹ, سیکنڈ, ہفتے:

متغیر م = نیا مدت(ہفتے=2, دن=3);
لکھو(م.دن);          // 17   (2×7 + 3)
لکھو(م.کل_دن);       // 17
لکھو(م.کل_سیکنڈ);   // 1468800
لکھو(م.کل_گھنٹے);   // 408

Date arithmetic — تاریخ حساب:

متغیر آج_ت = تاریخ.آج();

// Add
متغیر اگلا = آج_ت + نیا مدت(دن=10);
لکھو(متن(اگلا));     // 10 days from today

// Subtract
متغیر پچھلا = آج_ت - نیا مدت(دن=30);
لکھو(متن(پچھلا));    // 30 days ago

// Difference between two dates
متغیر فرق = اگلا - آج_ت;
لکھو(فرق.دن);        // 10

وقت — Time of Day

// Current time
متغیر و = وقت.ابھی();
لکھو(و.گھنٹہ);              // 8
لکھو(و.منٹ);                // 19
لکھو(و.سیکنڈ);              // 53
لکھو(و.فارمیٹ("%H:%M:%S")); // 08:19:53
لکھو(و.اردو_فارمیٹ());       // 8:19:53 صبح

// Specific time
متغیر نماز = نیا وقت(17, 30, 0);
لکھو(نماز.اردو_فارمیٹ());    // 5:30:00 شام

اردو: .اردو_فارمیٹ() وقت کے ساتھ صبح/دوپہر/شام/رات خودبخود لگاتا ہے۔


تاریخ_وقت — Full Timestamp

متغیر ٹ = تاریخ_وقت.ابھی();
لکھو(ٹ.سال, ٹ.مہینہ, ٹ.دن);
لکھو(ٹ.گھنٹہ, ٹ.منٹ, ٹ.سیکنڈ);
لکھو(ٹ.فارمیٹ("%Y-%m-%d %H:%M:%S"));    // 2026-05-30 08:19:53
لکھو(ٹ.اردو_فارمیٹ());                   // 30 مئی 2026، 8:19 صبح
لکھو(ٹ.مہر_وقت());                        // Unix timestamp

// Specific timestamp
متغیر لمحہ = نیا تاریخ_وقت(2026, 1, 1, 0, 0, 0);
لکھو(متن(لمحہ));    // 2026-01-01 00:00:00

// Extract parts
لکھو(متن(ٹ.تاریخ_حصہ));    // just the date
لکھو(متن(ٹ.وقت_حصہ));      // just the time

ہجری — Islamic / Hijri Calendar

// Today in Hijri
متغیر ہ = ہجری.آج();
لکھو(ہ.سال);          // 1447
لکھو(ہ.مہینہ);        // 12
لکھو(ہ.دن);           // 13
لکھو(ہ.مہینہ_نام);    // ذوالحجہ
لکھو(ہ.اردو_فارمیٹ()); // 13 ذوالحجہ 1447 ہجری

// Check special months
لکھو(ہ.کیا_رمضان());       // False
لکھو(ہ.کیا_ذوالحجہ());     // True

// Convert Gregorian → Hijri
متغیر گریگوری = تاریخ.آج();
متغیر ہجری_ت = گریگوری.ہجری_میں();
لکھو(ہجری_ت.اردو_فارمیٹ());

// Convert Hijri → Gregorian
متغیر عیسوی_ت = ہجری_ت.عیسوی_میں();
لکھو(متن(عیسوی_ت));

// Direct conversion functions
متغیر ہ2 = عیسوی_سے_ہجری(2026, 5, 30);
لکھو(ہ2.اردو_فارمیٹ());

// Specific Hijri date with فارمیٹ
متغیر رمضان = نیا ہجری(1446, 9, 1);
لکھو(رمضان.مہینہ_نام);    // رمضان
لکھو(رمضان.فارمیٹ("%d %B %Y"));    // 01 رمضان 1446

اردو: ہجری کلاس مکمل ہجری کیلنڈر سپورٹ دیتا ہے۔ .ہجری_میں() سے عیسوی سے ہجری اور .عیسوی_میں() سے ہجری سے عیسوی۔


ٹائمر — Stopwatch

متغیر گھڑی = نیا ٹائمر();
گھڑی.شروع();

// ... do some work ...
نیند(0.1);    // sleep 0.1 seconds

گھڑی.روکو();
لکھو(گول(گھڑی.گزرا_وقت, 3));    // ~0.1 seconds
لکھو(گول(گھڑی.ملی_سیکنڈ, 1));   // ~100 ms

گھڑی.دوبارہ_شروع();    // reset and start again

Free Functions — آزاد فنکشنز

// Today's date / current datetime
لکھو(متن(آج()));           // today as تاریخ
لکھو(مہر_وقت());           // Unix timestamp (int)

// Leap year check
لکھو(کبیسہ_سال(2024));    // True
لکھو(کبیسہ_سال(2025));    // False

// Days between two dates
متغیر ت1 = تاریخ.پارس("2026-01-01");
متغیر ت2 = تاریخ.پارس("2026-12-31");
لکھو(دنوں_کا_فرق(ت1, ت2));    // 364

// Month / day names
لکھو(مہینہ_نام(5));          // مئی
لکھو(مہینہ_نام(9, سچ));      // رمضان   (Hijri month 9)
لکھو(دن_نام(4));              // جمعہ    (weekday index, 0=پیر)

Name Constants — ناموں کی فہرستیں

لکھو(عیسوی_مہینے);
// ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئی', 'جون',
//  'جولائی', 'اگست', 'ستمبر', 'اکتوبر', 'نومبر', 'دسمبر']

لکھو(ہجری_مہینے);
// ['محرم', 'صفر', 'ربیع الاول', 'ربیع الثانی',
//  'جمادی الاول', 'جمادی الثانی', 'رجب', 'شعبان',
//  'رمضان', 'شوال', 'ذوالقعدہ', 'ذوالحجہ']

لکھو(ہفتے_کے_دن);
// ['پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ', 'اتوار']

Practical Example: Age Calculator — عملی مثال: عمر کیلکولیٹر

درآمد { تاریخ, دنوں_کا_فرق } سے "اردو/تاریخ";

فنکشن عمر_حساب(پیدائش_ت) {
    متغیر آج_ت = تاریخ.آج();
    متغیر دن_تعداد = دنوں_کا_فرق(پیدائش_ت, آج_ت);
    واپس {
        دن: دن_تعداد,
        سال: گول(دن_تعداد / 365.25, 1)
    };
}

متغیر پیدائش = تاریخ.پارس("2000-01-15");
متغیر عمر = عمر_حساب(پیدائش);
لکھو(`عمر: ${عمر.سال} سال (${عمر.دن} دن)`);

Quick Reference — فوری حوالہ

Class Description
تاریخ Gregorian date
وقت Time of day
تاریخ_وقت Full timestamp
مدت Duration (days, hours, minutes, seconds, weeks)
ہجری Islamic/Hijri calendar date
ٹائمر Stopwatch
Function Purpose
آج() Today's date
ابھی() Current datetime
مہر_وقت() Unix timestamp
کبیسہ_سال(سال) Leap year check
دنوں_کا_فرق(ت1, ت2) Days between dates
عیسوی_سے_ہجری(س, م, د) Gregorian → Hijri
ہجری_سے_عیسوی(س, م, د) Hijri → Gregorian
مہینہ_نام(م) Month name (pass سچ for Hijri)
نیند(سیکنڈ) Sleep / pause execution

← Previous: File I/O | Next: Math →