PDA

View Full Version : دریافت ساعت جهانی



Developer Programmer
پنج شنبه 09 فروردین 1386, 19:39 عصر
سلام
باید یه برنامه به زبان دلفی بنویسم که بتونه ساعت محلی کشور (مثل ایران) رو بر اساس ساعت جهانی از اینترنت دریافت کنه. مثل کاری که Linux میکنه.

Inprise
پنج شنبه 09 فروردین 1386, 20:53 عصر
"مثل کاری که لینوکس میکنه" رو نفهمیدم ، اما قاعدتا" برای مواردی مثل این از یک time server استفاده میشه ؛ یعنی برنامه ات زمان بین المللی رو بر اساس استانداردی که مایلی استفاده کنی و نسبت به گرینویچ از time server میپرسه ، و تو محاسبات ریاضی اش رو خودت انجام میدی . میتونی time server رو خودت راه بندازی ، و همینکه روی شبکه محلی یا اینترانت/اینترنت در دسترس نرم افزارت باشه کافیه ، یا میتونی از time server های عمومی استفاده کنی .

Developer Programmer
پنج شنبه 09 فروردین 1386, 21:43 عصر
مرسی از وقتی که گذاشتی


"مثل کاری که لینوکس میکنه" رو نفهمیدم

اوبونتو یه گزینه واسه قسمت Clock داشت، که ساعت کامپیوتر رو براساس ساعت جهانی، از طریق اینترنت، تنظیم میکرد.


یعنی برنامه ات زمان بین المللی رو بر اساس استانداردی که مایلی استفاده کنی و نسبت به گرینویچ از time server میپرسه

فرامینی که باید به سرور ارسال بشه، استاندارد هستن یا هر سرور فرامین خاص خودش رو داره؟
دنبال کدوم Keyword بگردم زودتر به نتیجه میرسم؟

Inprise
پنج شنبه 09 فروردین 1386, 22:04 عصر
فکر میکنم Indy چند دمو برای Time Server و Client داشت . از همونجا شروع کن . ویژگی ای که در مورد اوبونتو گفتی منحصر به لینوکس نیست و ویندوز و سایرین هم دارن .

Behrouz_Rad
جمعه 10 فروردین 1386, 00:10 صبح
تابع ای پی آی NetRemoteTOD به منظور دریافت تاریخ و زمان جاری سرور استفاده میشه.
ساختاری با نام TIME_OF_DAY_INFO برمیگردونه که تمامی جزئیات مورد نظرت رو داره.
نام یک سرور معتبر همانند YAHOO رو بده و تغییر مورد نظرت رو نسبت به زمان ایران بر روی اون اعمال کن.

موفق باشید.

Developer Programmer
جمعه 10 فروردین 1386, 14:45 عصر
از طریق موتور جستجوی Koders تونستم به یونیت هایی که Lukas Gebauer در http://www.ararat.cz/synapse/ گذاشته بود دسترسی پیدا کنم. خودش یه نمونه در مورد کار با SNTP داشت.
IP یه سرور رو میدی، برنامه هم تاریخ و زمان سرور رو برمیگردونه...

اما تبدیل UTC به زمان محلی ایران رو بلد نیستم.

Behrouz_Rad
جمعه 10 فروردین 1386, 15:07 عصر
نمی دونم پست من رو دیدی یا نه!
به هر حال...
اگر اون سرور بر حسب زمان گرینویچ تنظیم شده باشه، ساعت ایران، 3.5 ساعت از گرینویچ جلوتر هست که با تابع IncMinute می تونی به زمانی که به دست میاری 210 واحد اضافه کنی و ...

موفق باشید.

Developer Programmer
جمعه 10 فروردین 1386, 18:51 عصر
سلام

نمی دونم پست من رو دیدی یا نه!کجای پستم گفتم که پستتون رو نخوندم؟
با استفاده از اون API، برنامه رو نوشتم. منتها API برای یه شبکه داخلی کار میکنه که نام ماشین به صورت "//afshin-pc "داده بشه

اگر اون سرور بر حسب زمان گرینویچ تنظیم شده باشهمشکل من هم اینجاست که نمیدونم GMT هست یا UTC، کامپوننت مذکور به صورت UTC برمیگردوند.

Behrouz_Rad
جمعه 10 فروردین 1386, 21:37 عصر
مشکل من هم اینجاست که نمیدونم GMT هست یا UTC، کامپوننت مذکور به صورت UTC برمیگردوند.
از ای پی آی SystemTimeToTzSpecificLocalTime استفاده کن.

Developer Programmer
جمعه 10 فروردین 1386, 21:57 عصر
راهنمایی تون، من رو به http://www.freevbcode.com/ShowCode.asp?ID=6774 راهنمایی کرد.
توابع UTC2Localو Local2UTC مشکل رو حل کردن.

مرسی.