PDA

View Full Version : حرفه ای: مشکل تاریخ در نت فرم ورک 4 به بالا



hamidrezax1
جمعه 05 شهریور 1400, 17:55 عصر
سلام دوستان وقت بخیر.مشکلی که من دارم تبدیل تاریخ شمسی و میلادی به همدیگه هستش اونم در دانت فرم ورک 4 به بالا توی سری های پایین تر از کدهای عزیزان استفاده شده میخواستم بدونم آیا برای نسخه های 4 به بالاتر فانکشنی وجود داره؟ممنون میشم راهنمایی کنید

mehran6764
جمعه 05 شهریور 1400, 19:39 عصر
می تونید از متدهای کلاس 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/

hamidrezax1
جمعه 09 مهر 1400, 07:41 صبح
سلام دوستان وقت بخیر.متاسفانه جواب نداد امکانش هست راهنمایی بفرمایید

Alirezanet
دوشنبه 12 مهر 1400, 19:56 عصر
از این پکیج استفاده کنید.
VahidN/DNTPersianUtils.Core: DNTPersianUtils.Core is a collection of Persian helper extension methods (github.com) (https://github.com/VahidN/DNTPersianUtils.Core)

hamidrezax1
پنج شنبه 15 مهر 1400, 09:21 صبح
سلام دوست عزیزممنونم از محبتتون.میتونم بپرسم چجوری باید استفاده بشه؟من هنوز با vb.2010 کار میکنم.ممنون میشم راهنمایی کنید

Mahmoud.Afrad
پنج شنبه 15 مهر 1400, 15:24 عصر
کدی که شما نوشتی و کار نکرده چیه؟

hamidrezax1
پنج شنبه 15 مهر 1400, 18:07 عصر
دوست عزیز مشکل من اینجاست نتونستم از این کلاسها در دات نت فرم ورک 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





من میخوام که قابلیت این رو داشته باشم که تاریخ میلادی رو از تاریخ شمسی که بهش میدم استخراج کنه و بلعکس بتونه تاریخ شمسی بدم و میلادی رو برام محاسبه کنه و بتونم تفاضل تاریخ رو بدست بیارم و همچنین روزها رو کم و یا زیاد کنم

a_mohammadi_m
شنبه 25 دی 1400, 08:47 صبح
با سلام
این برای تبدیل میلادی به شمسی

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

برعکسش کن برای شمسی به میلادی

hamidrezax1
یک شنبه 26 دی 1400, 19:08 عصر
سلام دوست عزیز.من از ویندوز 10 استفاده میکنم و تنظیمات ویندوز و موقعیت ثبت شده اون ایران و فارسی هستش.متاسفانه این کد شما در نت فروم ورک 4 به بالا جوابگو نیست.ممنون میشم راهنمایی بفرمایید. موفق باشید
153663

ROSTAM2
سه شنبه 28 دی 1400, 14:21 عصر
سلام. منم 2010 استفاده می کنم ولی صحیح برمی گردونه. ی سوال پیش میاد اینجا دقیقا کدوم نسخه از دات نت فریم ورک رو استفاه می کنید؟!

153664

hamidrezax1
پنج شنبه 30 دی 1400, 17:06 عصر
سلام دوست گرامی من از نسخه 4 خود ویژوال استفاده میکنم
153667

ROSTAM2
دوشنبه 04 بهمن 1400, 11:43 صبح
سلام. منم برای اینکه بدونم نسخه 4 رو انتخاب کردم و همون تصویری که فرستادم نتیجه اش بود

hamidrezax1
دوشنبه 04 بهمن 1400, 17:42 عصر
سلام دوست عزیز نسخه ویندوزی که دارید استفاده میکنید چند هستش؟

ROSTAM2
سه شنبه 05 بهمن 1400, 08:54 صبح
سلام دوست عزیز نسخه ویندوزی که دارید استفاده میکنید چند هستش؟
سلام. ویندوز 10 آپدیت 2019 هستش