PDA

View Full Version : ثبت و ذخیره تاریخ



mahan.2002
دوشنبه 08 اسفند 1390, 13:13 عصر
با سلام
چطور بنظرتون تاریخ رو ثبت کنم یعنی اولا چطور تاریخ رو از کابر دریافت کنم. و اون رو چطوری در بانک ذخیزه کنم.
و بعد و بعد چگونه یک تاریخ که از کابر دریافت میکنم رو در رکورد های پیدا کنم.
تاریخ های که ورودی شمسی کاربر می باشد.

Galawij
دوشنبه 08 اسفند 1390, 13:34 عصر
چطور بنظرتون تاریخ رو ثبت کنم یعنی اولا چطور تاریخ رو از کابر دریافت کنم. و اون رو چطوری در بانک ذخیزه کنم.
و بعد و بعد چگونه یک تاریخ که از کابر دریافت میکنم رو در رکورد های پیدا کنم.
تاریخ های که ورودی شمسی کاربر می باشد.
برای تاریخ ها بهتره دو فیلد داشته باشید، یکی برای شمسی(نوع داده (10)Varchar) و دومی برای میلادی(با نوع داده Date در SQL 2008).
از سمت برنامه تاریخ را با شمسی می گیرید و تبدیل به میلادی می کنید، دو تا را در بانک درج می کنید. برای واکشی هم شمسی را می گیرید از کاربر تبدیل به میلادی می کنید و بر اساس میلادی سرچ می کنید.

tiphooo
دوشنبه 08 اسفند 1390, 16:30 عصر
بهترین راه حل ثبیت تاریخ با فرمت smalldatetime است و در زمان نمایش در برنامه آن را تبدیل به شمسی کنید دو فیلد از نطر من Redundancy است و زمانی که شما مقداری را با تغییر در یک فیلد دیگر می توانید به دست بیاورید نباید برای آن فیلد جداگانه در نظر بگیرید

mahan.2002
دوشنبه 08 اسفند 1390, 16:52 عصر
رشته ای که برای ذخیره کردن باید ارسال کنم چطوری باشه .
و تاریخ رو چطور از کاربر بگیرم.. یعنی توی چنتا تکس باکس یا راه بهتری هم هست.

tiphooo
دوشنبه 08 اسفند 1390, 17:20 عصر
شما قرار نیس رشته بفرستید مقداری که می فرستید از نوع data باید باشد و یا اگر رشته است زمان ذخیره تیدیل به date کنید و یرای گرفتن مقدار بستگی دارد از چه زبان برنامه نویسی استفاده می کنید
ولی می توانید از textbox هم استفاده کنید مشروط بر اینکه کاربر تاریخ را درست و کامل وارد کند
کاربر باید تاریخ را از نوع شمسی وارد کند و شما زمان دخیره آن را به تیدیل به میلادی کنید و برای نمایش مجددا شما باید تاریخ را از میلادی به شمسی تبدیل کنید
یعنی در زبان برنامه نویسیتان دو تابع برای تبدیل میلادی به شمسی و بلعکس داشته باشید
زبان برنامه نویسی شما چیست تا بهتر راهنمایی کنم؟

Galawij
دوشنبه 08 اسفند 1390, 19:58 عصر
دو فیلد از نطر من Redundancy است و زمانی که شما مقداری را با تغییر در یک فیلد دیگر می توانید به دست بیاورید نباید برای آن فیلد جداگانه در نظر بگیرید
دوست عزیز من سرعت برنامه را بر افزونگی که ایجاد می شود، ترجیح می دم. زمان و تعداد دفعاتی که صرف فراخوانی توابع تبدیل میلادی به شمسی و بلعکس می شه را باید در نظر گرفت ...

tiphooo
دوشنبه 08 اسفند 1390, 20:50 عصر
سرعت برنامه بسیار مهم است ولی دوست عزیز کنترل یک فیلد راحت تر از 2 فیلد است و اینکه این گونه پردازشها معمولا خیلی در سرعت تاثیر نمی گذارند و دیگر اینکه اینکه کنار هر فیلد از نوع تاریخ در دیتابیس یک فیلد دیگر برای تاریخ شمسی وجود داشته باشد خیلی قشنگ به نظر نمی رسد بعد وقتی که شما تاریخ شمسی هم دارید دیگر چرا میلادی هم ذخیره می کنید؟ کا کارهایتان را با همان تاریخ شمسی انجام دهید
اگر احیانا یکی را update کردید و دیگری را فراموش کردید چه می شود؟؟

barnamenevisforme
دوشنبه 08 اسفند 1390, 20:54 عصر
سلام
همون طور که دوستمون گفتن بهترین روش واسه ذخیره تاریخ ،در نظر گرفتن یه فیلد از نوعvarchar(10) یا nvarcharهستش.مزیت این کار اینه که تارخ رو به صورت یه رشته میتونید ذخیره کنید.از طرف دیگه اگه این فیلد رو به هر کنترلی بایند کنید دیگه نیازی به تبدیل نیست.کدی که مربوط به vb .net هست رو برات میذارم
فقط یادت باشه قبل از استفاده از این رویه حتما import system.globalization رو بالای صفحه اضافه کنی
PrivateSub return_date_of_edit(ByRef ddate AsString, ByRef hhour AsString)
Dim date_of_edit AsString
Dim time_of_edit AsString
Dim d_year AsString
Dim d_houre AsString
Dim persian_calender AsNew PersianCalendar
Dim this_date AsDate = Date.Now
Dim d_minute AsString
Dim d_month AsString
Dim d_dayof_month AsString
d_year = persian_calender.GetYear(this_date)
d_minute = persian_calender.GetMinute(this_date).ToString
If d_minute.Length = 1 Then d_minute = "0" + d_minute
d_houre = persian_calender.GetHour(this_date).ToString
If d_houre.Length = 1 Then d_houre = "0" + d_houre
d_month = persian_calender.GetMonth(this_date).ToString
d_dayof_month = persian_calender.GetDayOfMonth(this_date).ToString
If d_month.Length = 1 Then d_month = "0" + d_month
If d_dayof_month.Length = 1 Then d_dayof_month = "0" + d_dayof_month
date_of_edit = d_year + "/" + d_month + "/" + d_dayof_month '+ d_month + d_year
time_of_edit = d_houre + ":" + d_minute

ddate = date_of_edit
hhour = time_of_edit

EndSub

mahan.2002
سه شنبه 09 اسفند 1390, 07:08 صبح
با سلام دوباره

می خواستم ببینم ورودی را باید چطور در یافت کنم . و فرمتی که باید اطلاعات رو برای ذخیره و ثبت اون بفرستم.

و همچنین چه راهی پیشنهاد میکنید برای دریافت اطلاعات مثلا برای جستجو در یک بازه زمانی . در ضمن با زبان C#‎‎‎‎ کار میکنم.

و همچنین چطور اون ها رو به هم تبدیل کنم . اگر میتونید با یه مثال توضیح بدید خیلی بهتره .

sajjad_kochekian
یک شنبه 14 اسفند 1390, 20:14 عصر
سلام
من در برنامه هام از Int استفاده می کنم و داخل برنامه بهش فرمت می دهم
باید ببینی می توانی فرمت بدهید!
اگر امکانش هست می توانی از Int استفاده کنی و به راحتی هم مرتب می شود.نگهداری دو فیلد برای تاریخ واقعا اشتباه است. من در یک پروژه تحت استفاده کرده ام و واقعا درد سر ساز است.