PDA

View Full Version : مشکل تاریخ فارسی



مجتبی کریمی
جمعه 04 شهریور 1384, 12:28 عصر
سلام
تو یه برنامه دارم از تاریخ شمسی استفاده می کنم
متغیری که تعریف کردم از نوع تاریخ هست
این متغییر بعضی از تارخ ها رو قبول نمی کنه مثل 29/2/1383 تا 31/2/1383 اینم مال اونه که دومین ماه میلادی 28 روزه
چه طوری میشه این مشکل رو حل کرد؟

مجتبی کریمی
شنبه 05 شهریور 1384, 10:56 صبح
هیچ کس نیست کمک کنه؟

Happy_davood
شنبه 05 شهریور 1384, 11:36 صبح
خوب دوست عزیز این مشکل رو به دو روش می تونید حل کنید :
اول اینکه تاریخ رو بصورت یک فیلد کاراکتری و مثلاً با طول 10 ذخیره کنید .
دوم اینکه قبل از قرار دادن تاریخ در هر فیلدی اون رو تبدیل به میلادی بکنید و بعد ذخیره کنید و یا داخل هر متغیر استاندارد تاریخ بزارید و فقط موقع نمایش باید دوباره تبدیل به شمسی کنید .
روش دوم خیلی بهتره . یعنی همیشه تاریخ شما میلادی هست . به غیر از وقتی که می خواهید نمایش بدید .
برای تبدیل هم داخل این سایت کلی مطلب هست .

مجتبی کریمی
شنبه 05 شهریور 1384, 23:03 عصر
از شما به خاطر راهنماییتان متشکرم
اما در این سایت تابعی که بتوتند تاریخ میلادی را به شمسی تبدیل کند پیدا نکردم
البته توابعی در .NET نوشته شده اند که تاریخ میلادی را به شمسی تبدیل می کنند اما این به درد کار من نمی خورد این تابع را به زبان SQL لازم دارم تا بتوانم آن را درون DataGrid نشان دهم
متشکرم

Happy_davood
یک شنبه 06 شهریور 1384, 09:49 صبح
البته من VB کار نیستم ولی این مشکل شما ربطی به SQL نداره . شما وقتی که تاریخ رو از کاربر گرفتید ، اون رو تبدیل به میلادی می کنید و بعد در جدول بانک اطلاعاتی ذخیره می کنید . اگر خواستید در SQL و مثلاً در یک Stored Procedure روی فیلد تاریخ کار کنید ، خوب فیلد شما استاندادرد هست و می تونید با توابع استاندارد هم روی اون کار کنید . در این طرف یعنی داخل برنامه هم وضع به همین ترتیب هست . شما بعد از استخراج تاریخ از SQL Server اون رو در متغیر DateTime قرار خواهید داد و هر عملیات استانداردی می تونید روی اون انجام بدید .

درباره Grid هم باید بگم که همین فیلد تاریخ رو در Grid هم قرار خواهید داد . منتهی بعد از اینکه Grid رو با تاریخ میلادی پر کردید . آخرین عملیات شما شروع خواهد شد . یعنی اینکه یه حلقه خواهید نوشت به تعداد سطرهای Grid و محتوای ستونی رو که تاریخ میلادی هست برداشته تبدیل به شمسی کرده و دوباره جای خودش قرار خواهید داد .

مجتبی کریمی
دوشنبه 07 شهریور 1384, 09:39 صبح
از راهنماییتون ممنونم
انشا ا... موفق باشید