View Full Version : سوال: ساعت بدون ب.ظ
saleh_fartash
دوشنبه 04 آبان 1388, 08:56 صبح
به نام خدا
دوستان من يک فيلد تاريخ دارم که فرمت اون رو برابر short time
قرار دادم ، در دلفي هم اين فيلد رو از نوع time معرفي کردم اما باز هم به آخر تاریخ های من ب.ظ یا ق.ظ اظافه می کند.اما من تاریخ ساده-ساعت+دقیقه - را نیاز دارم ،چگونه این کار را انجام دهم؟
نمونه برنامه هم می گذارم:
Valadi
دوشنبه 04 آبان 1388, 09:44 صبح
شما برای ذخیره سازی تایم از این دستور که برحسب 24 ساعت است
FormatDateTime('HH:mm:ss', Now)
MohsenTi
دوشنبه 04 آبان 1388, 14:25 عصر
شما برای ذخیره سازی تایم از این دستور که برحسب 24 ساعت است
کد:
FormatDateTime('HH:mm:ss', Now)
تا جایی که میدونم این کار فایده نداره شما باید یه متغیر که مربوط به فرمت تاریخ دلفیه رو تنظیم کنید فکرمی کنم اسمش FormatDate یا format یا یه همچین چیزی
saleh_fartash
سه شنبه 05 آبان 1388, 21:49 عصر
دوستان کسی نتونست مشکل رو حل کنه وساعت رو در بانک 24 ساعته نشون بده؟
Ahmad Chehreghani
سه شنبه 05 آبان 1388, 22:13 عصر
Valadi (http://www.barnamenevis.org/forum/member.php?u=18939)گفت که از دستور زير استفاده کنيد
FormatDateTime('HH:MM:SS', Now)
Ebrahim Asadi
چهارشنبه 06 آبان 1388, 09:23 صبح
سلام
مشكل شما مربوط به ذخيره سازي datetime نيست مربوط به نحوه نمايش فيلدهاي datetime در windows است. براي نمايش ساعت به فرمت 24 ساعته مراحل زير را انجام بده:
Regional and options را در كنترل پنل باز كن. در صفحه اول (Regional options) دكمه Customize را بزن. در صفحه Time
Time Format را به HH:mm:ss تغيير بده و با زدن دكمه OK فرم را ببند.
saleh_fartash
چهارشنبه 06 آبان 1388, 12:45 عصر
تان عزیز جواب ها بسیار خوب بودند ولی نیاز به اعمال 2 جواب هست تا بتونم از کاربر با مسک ساعت 24 ساعته بگیرم.با این وضعیت من باید ریجستری کاربر رو هم تغییر بدم که این آنچنان جالب نیست.
اگر توضیح کامل نبود بگید تا مثال هم بذارم
Ebrahim Asadi
چهارشنبه 06 آبان 1388, 13:13 عصر
براي ورود اطلاعات مي تواني از يك DataTimePicker كه Property Kind آن dtkTime و property Format آن HH:mm است استفاده كني. براي نمايش ساعت در DBGrid مي تواني از يك فيلد محاسباتي استفاده كني. روي ADOTable1 دابل كليك كن و در پنجره باز شده راست كليك كن و گزينه New Field را بزن. نام فيلد را CALC_Time و Type آن را string (در دلفي 2009 بهتر است WideString باشد) انتخاب كن و Size را 5 بده. حالا در event OnCalcField
ADOTable1 دستورات زير را تايپ كن.
ADOTable1CALC_Time.Value := TimeToStr(ADOTable1x.Value);
Mahmood_M
چهارشنبه 06 آبان 1388, 13:15 عصر
مشکل شما در نمایش تاریخ هست و در ثبت اون در بانک ...
چند راه دارید که هنگام نمایش یا ثبت تاریخ اون رو تغییر بدید ، به وسیله ی تابع FormatDateTime همونطور که دوستان اعلام کردند ، تاریخ و ساعت رو می تونید سفارشی کنید ، مثال :
تاریخ :
FormatDateTime('YYYY/MM/DD', Now);
ساعت :
FormatDateTime('HH:MM:SS', Now);
خروجی توابع بالا رو ( که به صورت String هست ) می تونید نمایش بدید یا در بانک ذخیره کنید ...
لطفا مشخص کنید که قصد دارید به صورت String تاریخ رو ذخیره کنید یا نوع دیگه ای ...
اگر توضیح کامل نبود بگید تا مثال هم بذارم
اگر مثال هم قرار بدید جواب بهتری خواهید گرفت ...
موفق باشید ...
دلفــي
چهارشنبه 06 آبان 1388, 14:42 عصر
دوست عزیز به نظر من بهترین راه اینه که شما هنگام ذخیره ساعت از فیلد String استفاده کنید و قبل از ذخیره هم حتما کد زیر را وارد کنید :
ShortTimeFormat := 'hh:mm:ss';
در اینصورت هم داده شما به همون فرمتی که می خواهید ذخیره میشه و هم به همان صورت نمایش داده خواهد شد .
saleh_fartash
چهارشنبه 06 آبان 1388, 18:31 عصر
دوستان من می خوام فیلد من تاریخ باشه-برای اینکه بعدا برای جستجو هام و کارام راحت باشم- واینکه دارای mask باشه تا ورود ساعت راحت باشه.
این چیزی که من می خوام در حالت های 12 و 24 ساعته -با توجه به پست آقا ابراهیم-با مشکل برکی خورم که در مثال میتونید ببینید
farzane_fn
چهارشنبه 06 آبان 1388, 19:24 عصر
دوست خوبم سلام.من توی برنامم ساعت رو دارم و به فرمت ساعت و دقیقه و ثانیه بدون ب.ظ و یا ق.ظ نمایش می دم. از این دستور هم استفاده می کنم:
label1.Caption:=copy(timetostr(time),1,8);
امیدوارم به دردت بخوره..
saleh_fartash
چهارشنبه 06 آبان 1388, 21:12 عصر
راه حل پیدا شد.
فقط کافیه در آغاز برنامه Longtimeformat رو به hh:mm تغییر بدید
MohsenTi
چهارشنبه 06 آبان 1388, 23:53 عصر
البته اگه داده های شما به صورت ShortTime هست بهتره از ShortTimeFormat استفاده کنید
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.