PDA

View Full Version : تبدیل ساعت به فرمت 12 ساعتی



AliReza Vafakhah
دوشنبه 19 اسفند 1387, 16:37 عصر
سلام دوستان اگه سوالم تکرتری هست ببخشید من جستجو هم کردم اما مطلبی که به درد من بخور نبود (شاید درست جستجو نزده باشم)

می خواهم فرمت 24 ساعتی را به 12 ساعتی تبدیل کنم که تو تنظیمات خود ویندوز هم به این برخوردم که باعث این عمل میشه = hh:mm:ss tt

مثلا ساعت 23:00 تبدیل بشه به 11:00 بدون pM یا ب.ض

لطفا کمک کنید

Unique
دوشنبه 19 اسفند 1387, 17:26 عصر
var
s : string;
begin
s := FormatDateTime('hh:nn:ss a/p',now);
s := copy(s,1,length(s)-2);
showmessage(s);
end;

ولی به چه دردی میخوره ؟ چون اگه جایی ذخیره کنی ! مثلا توی Database ! فکر میکنه شما داری AM ذخیره میکنی !

خلاصه این کار رو میشه کرد اما .. !!

AliReza Vafakhah
دوشنبه 19 اسفند 1387, 17:53 عصر
دوست عزیز از کمکت ممنونم

می خوام فاصله بین ساعت 23:00 و ساعت 6:00 را به دست بیارم (البته تابع اش را دارم) که اگه ساعت 23:00 به ساعت 11:00 تبدیل نشه فاصله بین دوساعت میشه 17 ساعت که اشتباه است

Unique
دوشنبه 19 اسفند 1387, 19:16 عصر
سلام

ببین ، شما تابعت داره درست عمل میکنه ! اختلاف ساعت 23 و 6 دفیفا 17 ساعت هستش ! البته اگه منظور شما 18 باشه (6 بعد از ظهر) اختلاف میشه 5 ساعت !

اما من حدس میزنم شما میخواهین اختلاف تا ساعت 6 فرداش را بدست بیارین ! که در این صورت شما نیاز به یک TDateTime کامل دارین ! میتونید از تابع hoursbetween از یونیت DateUtils استفاده کنید !

کلا من خودم برای محاسبه اختلاف دو زمان تا حالا نیاز به تغییر مورد نظر شما از سیستم 24 ساعتی به 12 ساعتی با مشخصه am/pm نداشتم !

AliReza Vafakhah
دوشنبه 19 اسفند 1387, 20:53 عصر
اما من حدس میزنم شما میخواهین اختلاف تا ساعت 6 فرداش را بدست بیارین ! که در این صورت شما نیاز به یک TDateTime کامل دارین ! میتونید از تابع hoursbetween از یونیت DateUtils استفاده کنید !

مشکلم حل شد بدون اینکه تغییر بدم به 12 ساعت

اختلاف بین ساعت 23:00 و 6:00 (صبح) میشه 17:00 ساعت که من ساعت 23:59 رو ازش کم کرد و جواب درست یعنی 7:00 به دست امد

در ضمن تابع hoursbetween هم با تابع ای که من دارم یکی جواب میده

این هم تابع که در این تاپیک هست

http://barnamenevis.org/forum/showthread.php?t=149587

موفق باشی