View Full Version : مشكل در تبديل تاريخ ميلادي به شمسي
kohyar
شنبه 21 اردیبهشت 1387, 13:22 عصر
با سلام به دوستان
من دارم با استفاده از DLL پرشيا Persia تاريخ ميلادي رو تو Asp.net به فارسي تبديل مي كنم و مي خوام تاريخ بصورت كامل باشه مثل 12/02/1387
ولي اين DLL بصورت 12/2/1387 مي نويسه
من با تابع splite و كاراكتر / روز و ماه و سال را از هم جدا مي كنم ولي وقتي مي خوام روز رو به int تبديل كنم به من خطاي Input string was not in correct format رو ميده
Persia.SunDate pdate = new Persia.SunDate();
pdate = Persia.Calendar.ConvertToPersian(DateTime.Now);
string st = Convert.ToString(pdate.Simple);
string[] st2 = st.Split(new char[] { '/' });
string year = st2[0];
int mm = Convert.ToInt32(st2[1]);
int dd = Convert.ToInt32(st2[2]);
txtdate.Text = pdate.Simple.ToString();
اگر ممكنه بگين چرا تابع convert.toint32 پارامتر st[1] را بعنوان ورودي رشته اي قبول نمي كنه
Behrouz_Rad
شنبه 21 اردیبهشت 1387, 15:02 عصر
Persia با تابعی که درون خودش داره اعداد انگلیسی رو به اعداد معادل فارسی با اضافه کردن 1728 واحد به کد اسکی عدد تبدیل می کنه.
متد ToInt32 کلاس Convert برای انجام موفقیت آمیز عمل تبدیل نیاز به یک عدد با کد اسکی مرسوم داره؛ در نتیجه شما با خطا مواجه میشی.
به راحتی می تونی نتیجه بگیری که اگر از کد اسکی یک عدد با نمایش فارسی، 1728 واحد کم کنی می تونی نتیجه ی دلخواهت رو به دست بیاری.
موفق باشید.
fazel-d
چهارشنبه 15 خرداد 1387, 22:07 عصر
اقاي رد
پست اون مقاله تبديل تاريخ ميلادي به شمسي رو هر چي سرچ كردم پيدا نكردم ميشه آدرس شو بدين
milade
چهارشنبه 15 خرداد 1387, 22:21 عصر
اگه تاریخ شمسی می خوای بیا
Imports System.Globalization
Imports Microsoft.VisualBasic
Public Class Pcalendar
Dim Calend As New PersianCalendar
Public Function WhatDay() As String
Dim iDayOfMonth As Integer = Calend.GetDayOfMonth(Now)
Dim iMonth As Integer = Calend.GetMonth(Now)
Dim iYear As Integer = Calend.GetYear(Now)
Return iDayOfMonth.ToString & "/" & iMonth.ToString _
& "/" & iYear.ToString
End Function
Public Function WhatDayToString() As String
Dim iDayOfMonth As Integer = Calend.GetDayOfMonth(Now)
Dim iDayOfWeek As Integer = Calend.GetDayOfWeek(Now)
Dim iMonth As Integer = Calend.GetMonth(Now)
Dim iYear As Integer = Calend.GetYear(Now)
Dim SMonth() As String = {"فروردين", "ارديبهشت", "خرداد", "تير", "مرداد", "شهريور", "مهر", "آبان", "آذر", "دي", "بهمن", "اسفند"}
Dim SDay() As String = {"يك شنبه", "دوشنبه", "سه شنبه", "چهار شنبه", "پنج شنبه", "جمعه", "شنبه"}
Return (SDay(iDayOfWeek).ToString & " , " _
& iDayOfMonth & " " & SMonth(iMonth - 1).ToString & _
" , " & iYear.ToString)
End Function
End Class
در یه کلاس ذخیرش کن
راستی به این سوال من می تونی جواب بدی؟
http://barnamenevis.org/forum/showthread.php?t=108582
pouran
پنج شنبه 16 خرداد 1387, 12:17 عصر
دوست عزیز این اضافه بکن
PublicSharedFunction getCurrentDate() AsString
Dim sunDate As Persia.SunDate = Persia.Calendar.ConvertToPersian(DateTime.Now)
Dim strToday AsString = sunDate.Weekday.ToString().Substring(5) & " " & sunDate.Weekday.ToString().Substring(0, 5)
Return strToday
EndFunction
آن وقت این جوری فراخوانی کن
<spandir="rtl">
<%= getCurrentDate %></span>
و می تونی dll زیر را هم دانلود کنید و آن را reference کنی
mahdi_farhani
پنج شنبه 16 خرداد 1387, 16:54 عصر
به این لینک یه سر بزن ، شاید کمکت کنه .
http://barnamenevis.org/forum/showthread.php?t=90830
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.