مشاهده نسخه کامل
: مشکل با تاریخ
L u K e !
20-10-2010, 23:06
سلام
من واسه تبدیل تاریخ از Persian Calende استفاده می کنم
حالا یه مشکلی واسم پیش آومده
چرا توی بعضی تاریخ ها جای ماه و روز عوض می شه ؟
و Persian Calnder هم به اشتباه می ندازه ؟
این توابع تبدیل تاریخ منه مشکلی داره ؟
یا اینکه فقط باید جای ماه و روز رو عوض کنم ؟
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدمن کلی داده توی بانکم دارم ( میلادی ذخیره کردم ) یعنی هشون جای ماه و روز شون برعکسه ؟
رفتم توی بانکم یه همچین تاریخی دیدم 2010-01-31
سلام
در تاریخ های میلادی و در فرهنگشان خیلی عرف است که روز را در وسط نشان داده و ماه را به عنوان عدد اخر می اورند، یعنی قالب yyyy-dd-MM البته قالب yyyy-MM-dd هم استفاده میشود.
اینکه تاریخ را میلادی نگاه داشته اید، به نظر من خیلی خوب است
در کل در کدهای فوق هیچ مشکلی نمیبینم، مهم مقدار ذخیره شده در دیتابیس است، شکل نمایش ان اهمیتی ندارد.
مثلاً مقدار 123,456 با 123456 فرق دارد؟؟؟ شاید string دیداری ان فرق کند ولی سه رقم سه رقم جداکردن یک مورد دیداری است و در ماهیت عدد فرقی ندارد.
وقتی شما 21 اکتبر 2010 را در فیلد Date قرار میدهید، این مقدار در ان قرار دارد و پابرجاست،
دیگر مهم نیست که در دیتابیستان 21-10-2010 دیده شود یا 10-21-2010 مهم ماهیت مقدار ذخیره شده است.
1) اگر از نمایش آن درون دیتابیس sqlserver و با برنامه SSMS ناراحت هستید، در controlpanel ویندوز قالب نمایش تاریخ را عوض کنید.
2) اگر در برنامه میخواهید تاریخ میلادی را به همان شکل میلادی نشان دهید، از قالب دلخواه خود در ToString استفاده کنید.
3) اگر هم شمسی اش میکنید و بعد نشان میدهید که هیچ مشکلی وجود ندارد!
=====
ربطی به مستقیمی به مورد سوال شما ندارد ولی پیشنهاد میکنم ...
- ولی برای آینده، فقط حواستان به تابع ToMiladi باشد.
از این بابت که متن های عددی اسلش دارد شاید در شرایط RightToLeft و LeftToRight برعکس دیده و نتیجتاً نوشته شوند...
یعنی شاید کاربر شما با توجه به RightToLeft و LeftToRight در جایی طوری عدد را وارد کند که فیلد سال آخر باشد و بعد ماه و روز باشد.
یعنی شاید در شرایطی رخ دهد که (dt(2 عدد سال باشد.
شاید بهتر باشد عدد شده (dt(2 را با عدد شده (dt(0 مقایسه کنید و در صورت لزوم جایشان را عوض کنید.
و پیشنهاد آخر:
- PersianCalendar را یکبار در سطح کلاس New کنید
- برای جمع این موارد پشت سر هم String ای هم از StringBuilder استفاده کنید
- در تبدیل نوع ها هم از دستورات صریح تبدیل نوع استفاده کنید.
موفق باشید.
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.