نمایش نتایج 1 تا 6 از 6

نام تاپیک: خطا در تایع DateTime شمسی برای افزودن روز به تاریخ در برخی از تاریخ ها

  1. #1

    Question خطا در تایع DateTime شمسی برای افزودن روز به تاریخ در برخی از تاریخ ها

    با سلام و احترام

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

    Dim mypersia As New System.Globalization.PersianCalendar()

    my_lbl.text = mypersia.AddDays(Date2Persian_Str(DateTime.Now).To String, -180).ToString("yyyy/MM/dd")


    و کد تابع Date2Persian_Str :


    Public Function Date2Persian_Str(dt As System.DateTime) As String
    Dim FarsiDate As New System.Globalization.PersianCalendar()
    Dim Day As String = FarsiDate.GetDayOfMonth(dt).ToString()
    Dim Month As String = FarsiDate.GetMonth(dt).ToString()
    Dim Year As String = FarsiDate.GetYear(dt).ToString()
    If Day.Length = 1 Then
    Day = "0" & Day
    End If
    If Month.Length = 1 Then
    Month = "0" & Month
    End If
    Return (Year & "/" & Month & "/" & Day)
    End Function



    تا به امروز این کد بدون مشکل اجرا شده ولی امروز متوجه شدم در برخی از تاریخ ها (مثل 1401/02/30) اگر تنظیمات Date & Time سرور برروی شمسی نباشه، اجرای این کد خطای زیر را نمایش می دهد.


    Conversion from string "1401/02/29" to type 'Date' is not valid


    از اونجایی که هاستینگ حاضر به تغییر تنظیمات به شمسی نیست ممنون میشم راهنمایی بفرمایید چطور میشه این مشکل رو برطرف کرد. تشکر

  2. #2
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    1,646

    نقل قول: خطا در تایع DateTime شمسی برای افزودن روز به تاریخ در برخی از تاریخ ها

    سلام.
    خطایی که ارسال شده، خطای تبدیل تاریخ از رشته به Date هستش بنظر من Date فقط مقدار میلادی رو می گیره برای همین این خطا رو ارسال کرد بجای اون تاریخ شمسی بصورت دستی یک تاریخ میلادی بصورت رشته تایپ کن ببین خطا ارسال می شه یا نه. تا مطمئن شیم

  3. #3
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,055

    نقل قول: خطا در تایع DateTime شمسی برای افزودن روز به تاریخ در برخی از تاریخ ها

    سلام و روز خوش

    کد رو چک نکردم ولی همین که گفتین بعضی از تاریخ ها مثل 1401/02/29 مشخص هست که کد تاریخ رو میلادی در نظر گرفته،
    چون ماه فوریه 28 روزه است و در سالهای کبیسه 29 روزه میشه.

    در ضمن اهمیتی نداره که location کامپیوتری که کد رو اجرا میکنه چی باشه (مگر در فرمت پیشفرض تاریخ و ساعت و پول و ...) ،
    شما از persiancalendar استفاده میکنین.

  4. #4

    Thumbs up نقل قول: خطا در تایع DateTime شمسی برای افزودن روز به تاریخ در برخی از تاریخ ها

    نقل قول نوشته شده توسط ROSTAM2 مشاهده تاپیک
    سلام.
    خطایی که ارسال شده، خطای تبدیل تاریخ از رشته به Date هستش بنظر من Date فقط مقدار میلادی رو می گیره برای همین این خطا رو ارسال کرد بجای اون تاریخ شمسی بصورت دستی یک تاریخ میلادی بصورت رشته تایپ کن ببین خطا ارسال می شه یا نه. تا مطمئن شیم
    درود بر شما، با تاریخ میلادی مشکلی نداره و خروجی هم به میلادی نمایش داده میشه. با توجه به نکته ای که فرمودین کد رو به شکل زیر تغییر دادم و مشکل حل شد.
    سپاس از لطف شما


    lbl_date.Text = Date2Persian_Str(mypersia.AddMonths(DateTime.Now, -6))


  5. #5

    نقل قول: خطا در تایع DateTime شمسی برای افزودن روز به تاریخ در برخی از تاریخ ها

    نقل قول نوشته شده توسط mazoolagh مشاهده تاپیک
    سلام و روز خوش

    کد رو چک نکردم ولی همین که گفتین بعضی از تاریخ ها مثل 1401/02/29 مشخص هست که کد تاریخ رو میلادی در نظر گرفته،
    چون ماه فوریه 28 روزه است و در سالهای کبیسه 29 روزه میشه.

    در ضمن اهمیتی نداره که location کامپیوتری که کد رو اجرا میکنه چی باشه (مگر در فرمت پیشفرض تاریخ و ساعت و پول و ...) ،
    شما از persiancalendar استفاده میکنین.
    درود، از اونجایی که همین کد بدون مشکل و خطا تاریخ 1401/02/29 رو در لوکال کانورت میکنه، به همین علت حدس زدم بخاطر تفاوت تنظیمات تاریخ و ساعت سرور این مشکل به وجود اومده باشه.

    تشکر از شما

  6. #6

    نقل قول: خطا در تایع DateTime شمسی برای افزودن روز به تاریخ در برخی از تاریخ ها

    مقدار بازگشتی متد adddays از نوع datetime هست که باید از متد تبدیلی که نوشتید به جای tostring استفاده کنید.

تاپیک های مشابه

  1. استخدام کارآموز و کارشناس مهندسی صنایع
    نوشته شده توسط projanco در بخش آگهی های استخدام
    پاسخ: 0
    آخرین پست: شنبه 18 شهریور 1396, 11:56 صبح
  2. سوال: ایراد در افزودن روز ماه و سال به تاریخ شمسی
    نوشته شده توسط momimomi در بخش C#‎‎
    پاسخ: 3
    آخرین پست: یک شنبه 22 دی 1392, 20:35 عصر
  3. پاسخ: 2
    آخرین پست: چهارشنبه 27 آذر 1392, 11:20 صبح
  4. خبر: کامپوننت افزودن قابلیت های تاریخ شمسی به کلاس DateTime
    نوشته شده توسط alireza_s_84 در بخش برنامه نویسی مبتنی بر Microsoft .Net Framework
    پاسخ: 20
    آخرین پست: چهارشنبه 11 بهمن 1391, 20:23 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •