PDA

نسخه کامل مشاهده نسخه کامل : بهترین شیوه برای دریافت تاریخ و زمان از کاربر چیست ؟ و معرفی یک Dll کامل و مناسب ؟



royabahrami76
10-08-2017, 17:58
سلام در حال کار کردن روی پروژه ای هستم که در قسمت های مختلف از امکانات خود سایت گرفته تا پنل کاربری و پنل مدیریت بارها و بارها از کاربر تاریخ را دریافت میکنیم .



همونطور که میدونید در تبدیل تاریخ شمسی به میلادی به خاطر اختلاف در تعداد روز تقویمی (یک روز اختلاف) در تبدیل تاریخ ها مشکل ایجاد میشود و همینطور در تبدیل زمان .



و واضح تربخوام توضیح بدم اگه تاریخ و زمان رو بصورت شمسی از کاربر بگیرم و در پایگاه داده ذخیره کنیم دربازخوانی ممکن است(دراختلاف زمانی یک سال) تاریخ یک روز تغییر کند و ساعت هم طبیعتا همیشه تغییر میکند.



برای تبدیل تاریخ به میلادی و بلعکس و یا تاریخ بصورت نمایش روزِهفته و به صورت رشته ای و ... من از Dll زیر استفاده میکنم :

PersianDateTime.dll
که قابلیت هایی مثل موارد زیر را دارد (البته خیلی بیشتر از این):

s9.picofile.com/file/8303134042/Dll.png

مورد خیلی مهم زمانی است که تاریخ و زمان باید با هم دریافت شوند و در یک فیلد ذخیره شوند .


سوالات :
1 - در جاهایی که با تاریخ و زمان سروکار داریم (ثبت تاریخ جاری سیستم یا دریافت از کاربر) بنظرتون بهتره که قبل ذخیره در جدول اون رو به میلادی تبدیل کرده و بعدا در زمان بازخوانی و نمایش اون رو دوباره به Persian تبدیل کنیم ؟ این شیوه بنظرتون صحیح است ؟





2 - بهترین شیوه برای دریافت تاریخ و زمان(بصورت کامل) از کاربر چیست چیست ؟
بنظرتون تاریخ و زمان رو در دو فیلد جدا از هم در دیتابیس درنظر بگیرم و تاریخ و زمان رو جدا در اون ها ذخیره کنم و یا استفاده از یک فیلد فقط datetime بهتر است ؟




3 -برای دریافت تاریخ و زمان از کاربر بصورت دریافت سال و ماه و روز و زمان در TextBox های جدا چه پیشهادی رو دارید؟
نظرم الان اینه که برای هرکدوم یک TextBox بگذارم و در سمت اکشن بصورت پارامتر دریافت کردن سپس بصورت زیر میشه اون رو بصورت یک datetime کامل درآورد :

s9.picofile.com/file/8303139850/ToMiladi.jpg

am_merman01
31-10-2017, 03:36
سلام خدمت شما دوست عزیز
اولا اینکه من اصلا متوجه نشدم شما تحت کدوم زبان برنامه نویسی داری برنامه رو طراحی میکنی؟:n13:
اگر از دات نت استفاده میکنی یک کلاس به نام پرشین کالندر داره که از اون میتونی استفاده کنی و زمان رو بدون هیچ خطایی و مشکلی ثبت و تبدیل کنی و به طور حتم میتونم بگم چون این کلاس توسط خود برنامه نویس های دات نت طراحی شده هیچ خطا و مشکلی نداره.
در صورت استفاده از همین کلاس دیگه به هیچ فایل کمکی و DLL خارجی خاصی نیاز نداری
در مورد دریافت زمان و تاریخ هم بهترین حالت اینه که اون رو بتونی از یک سرور آنلاین دریافت و ذخیره کنی (تا کاربر نتونه با تغییر ساعت و تاریخ سیستم در برنامه شما اشکال بوجود بیاره)
در صورت آنلاین نبودن کاربر هم بهترین حالت اینه که تاریخ و زمان رو از طریق کد نویسی از روی سیستم خودتون به دست بیارید
ولی در نهایت بعد از به دست اوردن تاریخ و زمان ذخیره اون کاملا بستگی به سلیقه شما داره (من خودم ترجیح میدم که زمان و تاریخ رو در دو فیلد جداگانه در جدولم ذخیره کنم)
در مورد دریافت تاریخ از کاربر هم به نظر من میتونید از MaskedTextBox استفاده کنید شکیل تره و بعدا هم برای ذخیره در جدول نیاز به چسبوندن محتویات تکست باکس ها به هم نیست.

_H2_
04-11-2017, 22:46
سلام
با وجود جواب دوستمان am_merman01
ولی گفتم منهم جواب های کوتاهی بدهم...
سوال 1) شخصا از همین روش در پروژه های شخصی وشرکت استفاده میکنیم.
تاریخ به معادل واقعی میلادی اش در دیتابیس و حتی فایل xml و... ذخیره شده و فقط زمان نمایش شمسی میشود.

سوال 2) ذخیره تاریخ و ساعت درون یک تک فیلد datetime بنظر کافی و خوب است
ولی بگمان شخصی من ، اگرقرار است کاربر، آنها را وارد کند، بهتر است در 2 کنترلر جدا تحویل گرفته شود.

سوال 3) در موارد ساده میتوانید خودتان با PersianCalendar تاریخ را تبدیل کنید.
مدت ها قبل برای WinForm کنترلرهای زیر را ساختم:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
وبرای DataGridView
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

این یک کنترلر Picker بازشو برای تاریخ شمسی است که ظاهر و انیمیشن های Win7 برای تقویم را تقلید میکند.