اول سال است و یکی از چیزهایی که ممکن است شما را هم آزار بدهد، جلو کشیدن ساعتهاست! شاید یک هفته طول بکشد تا انسان خودش را با شرایط جدید وفق بدهد.
اما واقعاً چرا ساعتها را در شش ماه اول سال یک ساعت جلو میکشیم؟
(من قبل از عید، در یک کلاس مطرح کردم، از ۳۰ نفر فقط یک نفر آن هم دست و پا شکسته میدانست که چرا ساعتها را جلو میکشیم!)
ابتدا نگاهی به مسیر حرکت زمین به دور خورشید بیندازید:
همانطور که میبینید، مسیر حرکت زمین به دور خورشید، یک مسیر بیضوی شکل است که خورشید به یک طرف بیضی نزدیکتر است. بیشتر به محور حرکت زمین (یعنی آن خطی که از وسط زمین رد شده) دقت کنید.
همه چیز به محور زمین برمیگردد که یک محور کج است. وقتی کشور ما که در قسمت بالایی کره زمین (یعنی Northern) قرار دارد به بالای مسیر بیضوی میرسد (یعنی به 3. January) نسبت به خورشید در وضعیتی قرار میگیریم که خورشید را کمتر میبینیم و از طرفی همانقدر هم که میبینیم، به صورت مستقیم نمیبینیم! (یعنی با اینکه خورشید به کره زمین نزدیکتر است و انتظار داریم هوا گرمتر شود اما چون به طور مستقیم نمیتابد و کمتر میتابد، هوا سرد میشود) بنابراین هوا در نیمکره شمالی سرد میشود و شبها هم طولانیتر. (Northern winter)
و برعکس، وقتی به قسمت پایین مسیر میآییم با اینکه از خورشید فاصله میگیریم اما چون خورشید مستقیم به کشور ما میتابد و مدت بیشتری هم میتابد، هوا گرم میشود و در حقیقت در تابستان قرار میگیریم.
به هر حال، نکته اینجاست که در شش ماه اول سال روزها بلندتر میشود. یعنی مثلاً الان که ۳ فروردین است، اگر ساعت را جلو نکشیم، ساعت ۴:۴۰ دقیقه اذان صبح را میگویند و یک و نیم ساعت بعد هم که آفتاب میزند، یعنی ساعت ۶:۱۰ هوا کاملاً روشن است! حالا به مرور که به ابتدای تابستان برسیم، ساعت ۳:۱۰ صبح اذان صبح را میگویند و حدوداً ساعت ۵ آفتاب در آسمان است!
خوب، شما ساعت چند کار را شروع میکنید؟ حدوداً ساعت ۸ صبح! این یعنی شما ۳ ساعت از روشنایی روز را که هوای بسیار ملایمی دارد از دست دادهاید و در عوض دم ظهر با آن هوای داغ دارید کار میکنید! از آن طرف، به خاطر اینکه دیرتر آفتاب غروب میکند، شما که عادت دارید ساعت ۱۲ به رخت خواب بروید، ۵ ساعت بیشتر از تاریکی و آرامش شب برای خواب استفاده نکردهاید!
بنابراین راهی وجود ندارد مگر اینکه ساعتها را یک ساعت جلو بکشیم تا آفتاب در بدترین حالت ساعت ۶ طلوع کند یعنی ما روشنایی روز را کمتر از دست بدهیم و از آن طرف یک ساعت زودتر، ساعت ۱۲ بشود و شما زودتر به رخت خواب بروید که در تاریکی شب خواب باشید. در این صورت ما در اصطلاح «روشنایی روز را (برای کارهایمان) نجات دادهایم» (به انگلیسی: شما daylight را save کردهاید. save یعنی نجات دادن). به این شش ماه که ساعت را جلو میکشند در اصطلاح DST یا Daylight Saving Time میگویند.
حالا میفهمید وقتی وارد تنظیمات ساعت ویندوز میشوید، گزینهی Automatically adjust clock for Daylight Saving Time چه کار میکند! اگر این گزینه فعال باشد (که باید فعال باشد) در 21 March (یعنی اولین روز بهار) ساعت خود به خود یک ساعت جلو کشیده میشود.
اگر ساعتها را جلو نکشیم چه میشود؟
دیشب در یک مهمانی یکی از آشنایان که اطلاعات کافی ندارد اما به اندازه ششصد نفر مهندس و کارشناس اظهار نظر میکند، با اینکه تمام کارهای رئیس جمهور قبلی (آقای احمدی نژاد) را زیر سؤال میبرد و از مخالفان سرسخت ایشان است میگفت: احمدینژاد فقط یک کار خوب انجام داد و آن اینکه یک سال ساعتها را جلو نکشید!! یواش به او گفتم: فلانی! اتفاقاً این قضیه یکی از غیرکارشناسیترین کارهای آن بنده خدا بود! وقتی دلیلش را برایش توضیح دادم، خیالش راحت شد! انگار به خاطر همین یک کار، دلش نمیآمد بگوید همه کارهای آن بنده خدا بد بود، حالا خیالش راحت شد! با یک شور و شعفی میخندید!! (امان از دست این نوع انسانهای...)
ببینید، جلو نکشیدن ساعتها مصیبتهای بسیار بزرگی برای کشور ایجاد میکند:
- اولین مصیبت همین است که شما ساعت ۵ که آفتاب میزند و آماده رفتن به سر کار هستید، باید ۳ ساعت صبر کنید تا ساعت کاری شما شروع شود!
- مصیبت بزرگتر این است که شما در اوج گرما سر کار خواهید بود و این یعنی ۱ ساعت کولرها و چیلرهای سازمانها بیشتر روشن خواهد بود در حالی که میشد زودتر سر کار بیایید که هوا خنک است و نیازی به کولر نیست. (میدانید این یک ساعت را وقتی ضرب در تعداد سازمانها کنید چقدر مصرف اضافهی انرژی به کشور تحمیل میشود؟)
- اصلاً اگر این دو قضیه را نادیده بگیریم، مصیبت عُظما (یک نکته خارج از بحث: وقتی یک اسم، مؤنت باشد برای ساخت اسم تفضیل در عربی آنرا به وزن فُعلی میبرند، مانند کبری که یک اسم دخترانه است و «اکبر» بر وزن افعل که اسم تفضیل مذکر و اسم پسرانه است. هر دو به معنی بزرگترین) و بدترین اتفاقات در برنامهریزیها میافتد و برای ما برنامهنویسان، در برنامههایی که تاکنون نوشتهایم!! تمام برنامههایی که با ساعت سر و کار دارند، به اشتباه خواهند افتاد! همه باید اصلاح شوند! حقیقتش را بخواهید من هفت هشت سال پیش که ساعتها جلو کشیده نشد چندان در جریان این مشکلات نبودم و چیزی احساس نکردم اما حدس میزنم پدر تمام برنامهنویسانی که برنامهای بر اساس ساعت رسمی کشور نوشتهاند در آمده باشد! من وقتی درگیر کدنویسی تستا ۳ شدم تازه فهمیدم اگر قرار باشد ساعتها را جلو نکشند، تستا در شش ماه اول سال یک ساعت اشتباه عمل خواهد کرد.
به طور دقیق اگر بخواهم توضیح دهم اینطور میشود:
ببینید، تقریباً در همه زبانهای برنامهنویسی، ما وقتی به آن زبان میگوییم ساعت الان چند است؟ در جواب، ساعت نصف النهار مبدأ (یعنی ساعت شهر لندن) را بر اساس UTC میگوید. (بر اساس UTC میگوید یعنی بدون در نظر گرفتن ساعت رسمی شهر لندن که جلو کشیده میشود یعنی به ساعت قدیم لندن*) حالا این وظیفه مای برنامهنویس است که ببینیم الان در چه کشوری هستیم و کشور ما نسبت به لندن چقدر اختلاف زمانی دارد و آن اختلاف ساعت را به ساعت لندن اضافه کنیم و به کاربر نهایی نشان دهیم. مثلاً الان ساعت ایران ۱۲ شب است. من اگر تابع date("H:i:s") را در زبان PHP فراخوانی کنم، ساعت لندن را نشان میدهد که الان ۱۹:۳۰ است.
بعد من در برنامهنویسی شماره ماه شمسی را به دست میآورم (مثلاً الان فروردین است پس ۱ است) و میگویم: اگر شماره ماه، کمتر یا مساوی ۶ بود، به ساعت لندن ۴ ساعت و ۳۰ دقیقه اضافه کن و اگر بزرگتر از ۶ بود (یعنی نیمه دوم سال بودیم) ۳ ساعت و ۳۰ دقیقه اضافه کن و به این صورت ساعت ایران به دست میآید.
مثلاً شما در تستا میگویید ساعت ۸ صبح ۵ فروردین آزمون را فعال کن، اگر ساعتها جلو کشیده نشود، تستا آزمون را یک ساعت دیرتر شروع میکند!!! حالا تصور کنید چند برنامه در این کشور به هم میریزد! حالا روابط بین الملل را هم وسط بکشید! تمام کشورها میخواهند بدانند الان ساعت ایران چند است، طبق تنظیماتی که از قبل تعریف شده، نرم افزارها در ۶ ماه اول سال، ساعت ایران را یک ساعت جلوتر نشان میدهند اما غافل از اینکه مثلاً امسال شما تصمیم گرفتهاید جلو نکشید!!!!!! همه چیز به هم میریزد!
یعنی یا باید این تصمیم را نمیگرفتیم که ساعتها را جلو بکشیم یا حالا که تصمیم گرفتیم دیگر در اختیار ما نیست که بگوییم جلو نمیکشیم! مگر اینکه دیگر رسماً و قطعاً اعلام کنیم که از این پس جلو نمیکشیم و روی حرفمان بایستیم. نباید اینطور باشد که یک سال جلو بکشیم و سال بعد که رئیس جمهور عوض شد نکشیم! میدانید!؟ اگر اینطور باشد هر رئیس جمهوری که عوض میشود ما برنامهنویسها باید برنامههایمان را ویژه آن رئیس جمهور آپدیت کنیم!!!!!!! مثلاً تستا ویژه دوران ریاست جمهوری آقای احمدینژاد یا تستای ویژه دوران آقای روحانی!!!!
- مصیبتهای مختلفی به خاطر جلو نکشیدن ساعت پیش میآید که خودتان با کمی فکر کردن میتوانید بفهمید...
طبق این مقاله از ویکیپدیا که به طور جامع در مورد این موضوع صحبت کرده، در مجموع فواید جلو کشیدن ساعت در این مباحث خلاصه میشود:
Energy use (استفاده از انرژی)
Economic effects (تأثیرات اقتصادی)
Public safety (سلامت عمومی: بحث ترافیک، کاهش تصادفات و امثالهم)
Health (سلامت جسمی: در تاریکی میخوابید، سحرخیزتر خواهید بود و امثالهم)
Complexity (پیچیدگی کمتر: یعنی اگر ساعتها را جلو نکشیم، مجبوریم به مردم بگوییم در شش ماه اول، به جای ساعت ۸، ساعت ۷ بیایید سر کار و در شش ماه دوم همان ساعت ۸ و مثلاً در یک اداره اینطور است اما در شرکت خصوصی اینطور نیست و خلاصه این موضوع، کار را پیچیده میکند. اما الان همیشه همه ساعت ۸ سر کار میرویم در عوض ساعتها را یک بار برای همیشه و همگی جلو میکشیم!) (برای درک پیچیدگی این موضوع کافیست با پدر بزرگهایتان که تن به جلو کشیدن ساعت نمیدهند در مورد ساعت بحث کنید! دائم باید بپرسید: ساعت قدیم یا جدید؟)
نمیشود ساعتها را جلو بکشیم و دیگر عقب نکشیم؟
ممکن است بگویید خوب نمیشود ساعتها را در شش ماه دوم عقب نکشیم؟ خوب، همین مشکلات به شکلی دیگر پیش میآید: در زمستان شبها طولانی میشود و ساعت ۷ صبح (ساعت قدیم) آفتاب میزند اگر ساعتها را عقب نکشیم، ساعت ۸ صبح آفتاب میزند!!!!!!!!! یعنی در تاریکی باید بروید سر کار! یعنی کلی برق مصرف شود که مسیر حرکت شما روشن باشد و خیلی برقهای دیگر...
آیا همه کشورها ساعتها را جلو میکشند؟
خیر! مثلاً کشورهایی که نزدیک به دو قطب هستند و شش ماه سال در تاریکیاند و شش ماه در روشنایی، برایشان فرق نمیکند ساعتها را جلو بکشند یا نکشند!
در کشورهایی هم که استفاده از DST مفید است، ظاهراً این موضوع یک چیز سلیقهای است.
در این صفحه از ویکیپدیا کشورهایی که از DST استفاده میکنند یا نمیکنند مشخص شدهاند.
در نقشه زیر رنگ آبی و نارنجی کشورهایی که استفاده میکنند را مشخص میکند (آبی در نیمه اول سال و نارنجی در نیمه دوم سال ساعتها را جلو میکشند) و رنگ خاکستری پررنگ هرگز از DST استفاده نکردهاند (خوش به حالشان! :() و خاکستری کمرنگ، قبلاً استفاده میکردهاند اما الان دیگراستفاده نمیکنند. (بعید نیست ما هم یک روز جزء این کشورها شویم)
تاریخ و ساعت، از پیچیدهترین مسائل در برنامهنویسی
شاید هیچ چیز به اندازه کار با ساعت و تاریخ برای برنامهنویسان و برنامهریزان سخت نباشد! یعنی شما اگر روال تکامل مباحث تاریخ در برنامهنویسی را بررسی کنید میتوانید بفهمید چقدر این موضوعات پیچیده است! مثلاً جستجو کنید که فرق GMT یا UTC چیست!؟ ابتدا انسانها فکر میکردند GMT کارشان را راه میاندازد اما بعدها دیدند در تدبیل تاریخ و ساعت بین کشورهای مختلف با توجه به اینکه شهر لندن خودش ممکن است در یک تاریخ کاملاً نامشخصی (یعنی یکشنبهی آخر ماه مارچ!!!) ساعت خود را جلو بکشد کار خیلی خیلی پیچیده میشود! این شد که UTC ابداع شد. حالا حتی با همین UTC که کار را راحتتر کرده، اینکه در هر کشوری چه موقع ساعتها را جلو میکشند و کاربر نهایی ما در چه کشوری قرار دارد و خلاصه همه این قضایا را با هم مخلوط کنید تا بفهمید که نوشتن یک برنامه که بشود دقیق عمل کند و کاربرانی از کشورهای مختلف داشته باشد چقدر نیاز به تحلیل دارد! انصافاً من از بحث تاریخ مشکلتر در برنامهنویسی ندیدهام!
مقالات پیشنهادی:
موفق باشید؛
حمید رضا نیرومند