PDA

View Full Version : تاریخ فارسی



M.kavyani
یک شنبه 27 آذر 1384, 10:43 صبح
با سلام خدمت دوستان
من در دیتابیس تاریخ ها را به صورت میلادی ذخیره کردم که این کمک خیلی زیادی به من کرده اما یه مشکلی دارم و اونم اینه که زمانی میخوام گزارش تهیه کنم تاریخ ها به صورت میلادی است. چگونه میتوان آنها را به شمسی تبدیل کنم؟
در پناه حق موفق و کامروا باشید

مطهر
یک شنبه 27 آذر 1384, 11:20 صبح
من تاریخ را به صورت رشته ذخیره کردم.مشکلی هم تا حالا نداشته ام
توی بخش SQL یه Store procedure بود که تاریخ را تبدیل می کرد.
بگردی پیدا می کنی

M.kavyani
یک شنبه 27 آذر 1384, 15:11 عصر
من تاریخ را به صورت رشته ذخیره کردم.مشکلی هم تا حالا نداشته ام
توی بخش SQL یه Store procedure بود که تاریخ را تبدیل می کرد.
بگردی پیدا می کنی
البته من در این برنامه ها مبتدی هستم ولی همین قدر میدونم که استفاده از تاریخ میلادی در جستجو و مرتب سازی و گزارش گرفتن حسابی کمکم کرده. شاید بشود با رشته ها هم این کار را کرد ولی من بلد نیستم.

مطهر
یک شنبه 27 آذر 1384, 17:30 عصر
البته می شود
شما مثل همان تاریخ عمل کنید(ولی فرمت باید اینجوری باشه 27/09/1384)
لااقل من تا حالا مشکل نداشته ام.آینده را نمی دونم . اگر هم دارم اشتباه می کنم امیدوارم زودتر به اشتباهم پی ببرم

ehsan_ansaripoor
یک شنبه 27 آذر 1384, 23:25 عصر
همان طوری که جناب مطهر فرمودند برای استفاده از تاریخ با فرمت هجری شمسی راهی به جز استفاده از رشته نیست با اینکه استفاده از فیلد تاریخ برای دسترسی سریعتر مناسبتره ولی از فیلد تاریخ نمیشه برای تاریخ شمسی استفاده کرد.
در جواب دوست عزیزمون M.kavyani هم باید عرض کنم که ذخیره کردن تاریخ به صورت میلادی و نشون دادن اون به صورت هجری شمسی در گزارش کار عجیبی به نظر میرسه و اگر شما بخواهید این کار را انجام بدید باید از یک Function تبدیل تاریخ استفاده کنید که سرعت برنامه را در تهیه گزارش خیلی پایین میاره یعنی در هز رکورد که تاریخ به صورت میلادی ذخیره شده تبدیل کنه به تاریخ شمسی
به نظر بنده اگر شما به تاریخ میلادی احتیاج دارید و در گزارشات به تاریخ شمسی یک فیلد تاریخ شمسی نیز داخل جدول داشته باشید و موقع ورود تاریخ میلادی تاریخ شمسی نیز وارد شود

احمد رایان
دوشنبه 28 آذر 1384, 02:39 صبح
به نظر بنده اگر شما به تاریخ میلادی احتیاج دارید و در گزارشات به تاریخ شمسی یک فیلد تاریخ شمسی نیز داخل جدول داشته باشید و موقع ورود تاریخ میلادی تاریخ شمسی نیز وارد شود

من هم فکر میکنم این روش بهتری راه حل برای استفاده از هر دو تاریخ هست اما اگه از تاریخ شمسی به صورت رشته استفاده کنی مشکل خاصی پیش نخواهد آمد.

M.kavyani
دوشنبه 28 آذر 1384, 16:52 عصر
بله با راهنمایی هایی آقای ثباتی تصمیم گرفتم که دو جدول داشته باشم که دریکی از آنها تاریخ شمسی به صورت رشته و در دیگر تاریخ میلادی را به صورت DateTime ذخیره کنم. روش جالبیه . از پاسختون ممنونم
درپناه حق موفق و کامروا باشید

مطهر
دوشنبه 28 آذر 1384, 18:14 عصر
ممنون . کار جالبیه
من هم تغییر می دهم

M.kavyani
سه شنبه 29 آذر 1384, 00:18 صبح
ممنون . کار جالبیه
من هم تغییر می دهم
موفق باشین

aliasghar
سه شنبه 29 آذر 1384, 07:49 صبح
سلام
من هم همین مشکل را داشتم و دو تا راه حل پیدا کردم
یکی نوشتن تابع تبدیل تارخ در اشیا Com و فراخوانی با کریستال
یکی استفاده از تبدیل تاریخ در Sql Server

meh_secure
جمعه 02 دی 1384, 15:00 عصر
من از یه روش استفاده می کنم که خوب جوابمو داده
یه تابع تبدیل تاریخ در وی بی نوشتم که تاریخ شمسی رو میده به صورت یه عدد لانگ.
مثلا 13841225 تو کوری گیری هم هیچ مشکلی ندارم.
هنگام نمایش تو کریستال هم با استفاده از یک فرمول به رشته تبدیلش می کنم وبینشون علامت / رو قرار میدم.

M.kavyani
جمعه 02 دی 1384, 15:15 عصر
من از یه روش استفاده می کنم که خوب جوابمو داده
یه تابع تبدیل تاریخ در وی بی نوشتم که تاریخ شمسی رو میده به صورت یه عدد لانگ.
مثلا 13841225 تو کوری گیری هم هیچ مشکلی ندارم.
هنگام نمایش تو کریستال هم با استفاده از یک فرمول به رشته تبدیلش می کنم وبینشون علامت / رو قرار میدم.
شیوه قشنگیه ولی چون تبدیل داره من ترجیح میدم از دو رکورد استفاده کنم

meh_secure
جمعه 02 دی 1384, 15:18 عصر
منظورت از 2 رکورد چیه ؟ من متوجه نشدم.

مطهر
جمعه 02 دی 1384, 19:23 عصر
یکی تاریخ شمسی و به صورت رشته
دیگری تاریخ میلادی به صورت تاریخ
توی همین بخش در موردش بحث شده

meh_secure
جمعه 02 دی 1384, 21:44 عصر
پس منظورتون دو تا فیلد بود.
در هرصورت اینم روش خوبیه ولی دستتون تنگ نگه می داره.

M.kavyani
جمعه 02 دی 1384, 23:32 عصر
پس منظورتون دو تا فیلد بود.
در هرصورت اینم روش خوبیه ولی دستتون تنگ نگه می داره.

ببخشید من فیلد و رکورد را اشتباه گرفتم. بله حق با شماست. ولی از اینکه میگی دستتون رو تنگ نگه میداره چیه؟
:متفکر:

meh_secure
شنبه 03 دی 1384, 00:33 صبح
با این روش که شما فرمودید کاربر می تونه هر تاریخی که دوست داشته باشه وارد کنه. طوری که با معادل میلادی اون صدق نکنه یا یه همچین چیزایی

M.kavyani
شنبه 03 دی 1384, 21:42 عصر
با این روش که شما فرمودید کاربر می تونه هر تاریخی که دوست داشته باشه وارد کنه. طوری که با معادل میلادی اون صدق نکنه یا یه همچین چیزایی
نه این جوری هم که شما فکر میکنید نیست. چون ما هنگام وارد کردن اطلاعات فقط از کاربر تاریخ شمسی رو میگیریم و بعد قسمت شمسی رو در فیلد مربوط به تاریخ شمسی که از نوع رشته ای است ذخیره میکنیم و بعد اون تاریخ رو به میلادی تبدیل میکنیم و در فیلد تاریخ میلادی ذخیره میکنیم. پس هرگز چنیین چیزی امکان نداره
در ضمن یکی از مزیت های این روش این است که ما فقط یه بار تبدیل انجام می دهیم و سرعت برنامه بالاتر میره. :تشویق:
بعد منظورتون از " یه همچین چیزهای" چیه؟ :متعجب:

sepelloo
چهارشنبه 12 اردیبهشت 1386, 11:57 صبح
دوستان میشه بگید چطور توی کریستال ریپورت میشه از یه کلاس یا dll که قبلا نوشته شده برای تبدیل تاریخ به شمسی استفاده کرد

sm
چهارشنبه 12 اردیبهشت 1386, 12:28 عصر
http://msdn2.microsoft.com/en-us/library/ms227658(vs.80).aspx

http://www.codeproject.com/dotnet/DecryptForCrystal.asp

موفق باشید