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 |