سلام دوستان وقت بخیر.مشکلی که من دارم تبدیل تاریخ شمسی و میلادی به همدیگه هستش اونم در دانت فرم ورک 4 به بالا توی سری های پایین تر از کدهای عزیزان استفاده شده میخواستم بدونم آیا برای نسخه های 4 به بالاتر فانکشنی وجود داره؟ممنون میشم راهنمایی کنید
Printable View
سلام دوستان وقت بخیر.مشکلی که من دارم تبدیل تاریخ شمسی و میلادی به همدیگه هستش اونم در دانت فرم ورک 4 به بالا توی سری های پایین تر از کدهای عزیزان استفاده شده میخواستم بدونم آیا برای نسخه های 4 به بالاتر فانکشنی وجود داره؟ممنون میشم راهنمایی کنید
می تونید از متدهای کلاس PersianCalendar استفاده کنید
https://docs.microsoft.com/en-us/dotnet/api/system.globalization.persiancalendar?view=net-5.0
https://www.codenevisan.com/128-%D8%AF%D8%B1%DB%8C%D8%A7%D9%81%D8%AA-%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE-%D8%AC%D8%A7%D8%B1%DB%8C-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D9%88-%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D8%A8%D9%87-%D8%B4%D9%85%D8%B3%DB%8C/
سلام دوستان وقت بخیر.متاسفانه جواب نداد امکانش هست راهنمایی بفرمایید
سلام دوست عزیزممنونم از محبتتون.میتونم بپرسم چجوری باید استفاده بشه؟من هنوز با vb.2010 کار میکنم.ممنون میشم راهنمایی کنید
کدی که شما نوشتی و کار نکرده چیه؟
دوست عزیز مشکل من اینجاست نتونستم از این کلاسها در دات نت فرم ورک 4 به بالا استفاده کنم
Class Sample
Public Shared Sub Main()
Dim jc As New PersianCalendar()
Dim thisDate As DateTime = DateTime.Now
'--------------------------------------------------------------------------------
' Properties
'--------------------------------------------------------------------------------
Console.WriteLine(vbLf & "........... Selected Properties ....................." & vbLf)
Console.Write("Eras:")
For Each era As Integer In jc.Eras
Console.WriteLine(" era = {0}", era)
Next
'--------------------------------------------------------------------------------
Console.WriteLine(vbLf & "TwoDigitYearMax = {0}", jc.TwoDigitYearMax)
'--------------------------------------------------------------------------------
' Methods
'--------------------------------------------------------------------------------
Console.WriteLine(vbLf & "............ Selected Methods ......................." & vbLf)
'--------------------------------------------------------------------------------
Console.WriteLine("GetDayOfYear: day = {0}", jc.GetDayOfYear(thisDate))
'--------------------------------------------------------------------------------
Console.WriteLine("GetDaysInMonth: days = {0}", jc.GetDaysInMonth(thisDate.Year, thisDate.Month, PersianCalendar.PersianEra))
'--------------------------------------------------------------------------------
Console.WriteLine("GetDaysInYear: days = {0}", jc.GetDaysInYear(thisDate.Year, PersianCalendar.PersianEra))
'--------------------------------------------------------------------------------
Console.WriteLine("GetLeapMonth: leap month (if any) = {0}", jc.GetLeapMonth(thisDate.Year, PersianCalendar.PersianEra))
'-------------------------------------------------------------
Console.WriteLine("GetMonthsInYear: months in a year = {0}", jc.GetMonthsInYear(thisDate.Year, PersianCalendar.PersianEra))
'--------------------------------------------------------------------------------
Console.WriteLine("IsLeapDay: This is a leap day = {0}", jc.IsLeapDay(thisDate.Year, thisDate.Month, thisDate.Day, PersianCalendar.PersianEra))
'--------------------------------------------------------------------------------
Console.WriteLine("IsLeapMonth: This is a leap month = {0}", jc.IsLeapMonth(thisDate.Year, thisDate.Month, PersianCalendar.PersianEra))
'--------------------------------------------------------------------------------
Console.WriteLine("IsLeapYear: 1370 is a leap year = {0}", jc.IsLeapYear(1370, PersianCalendar.PersianEra))
'--------------------------------------------------------------------------------
' Get the 4-digit year for a year whose last two digits are 99. The 4-digit year
' depends on the current value of the TwoDigitYearMax property.
Console.WriteLine("ToFourDigitYear:")
Console.WriteLine(" If TwoDigitYearMax = {0}, ToFourDigitYear(99) = {1}", jc.TwoDigitYearMax, jc.ToFourDigitYear(99))
jc.TwoDigitYearMax = thisDate.Year
Console.WriteLine(" If TwoDigitYearMax = {0}, ToFourDigitYear(99) = {1}", jc.TwoDigitYearMax, jc.ToFourDigitYear(99))
End Sub
End Class
من میخوام که قابلیت این رو داشته باشم که تاریخ میلادی رو از تاریخ شمسی که بهش میدم استخراج کنه و بلعکس بتونه تاریخ شمسی بدم و میلادی رو برام محاسبه کنه و بتونم تفاضل تاریخ رو بدست بیارم و همچنین روزها رو کم و یا زیاد کنم
با سلام
این برای تبدیل میلادی به شمسی
Public Function MiladiToShamsi(ByVal MDate As Date) As String
MiladiToShamsi = ""
Dim pc As New Globalization.PersianCalendar
Dim Sal As Integer = pc.GetYear(MDate)
Dim Mah As Integer = pc.GetMonth(MDate)
Dim Roz As Integer = pc.GetDayOfMonth(MDate)
MiladiToShamsi = Format(Sal, "0000") & "/" & Format(Mah, "00") & "/" & Format(Roz, "00")
Return MiladiToShamsi
End Function
'طریقه استفاده از تابع
' Msgbox(MiToShamsi(Now()))
' Return Sample : 13980301
برعکسش کن برای شمسی به میلادی
سلام دوست عزیز.من از ویندوز 10 استفاده میکنم و تنظیمات ویندوز و موقعیت ثبت شده اون ایران و فارسی هستش.متاسفانه این کد شما در نت فروم ورک 4 به بالا جوابگو نیست.ممنون میشم راهنمایی بفرمایید. موفق باشید
ضمیمه 153663
سلام. منم 2010 استفاده می کنم ولی صحیح برمی گردونه. ی سوال پیش میاد اینجا دقیقا کدوم نسخه از دات نت فریم ورک رو استفاه می کنید؟!
ضمیمه 153664
سلام دوست گرامی من از نسخه 4 خود ویژوال استفاده میکنم
ضمیمه 153667
سلام. منم برای اینکه بدونم نسخه 4 رو انتخاب کردم و همون تصویری که فرستادم نتیجه اش بود
سلام دوست عزیز نسخه ویندوزی که دارید استفاده میکنید چند هستش؟