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

نام تاپیک: مشکل تاریخ در نت فرم ورک 4 به بالا

  1. #1

    Smile مشکل تاریخ در نت فرم ورک 4 به بالا

    سلام دوستان وقت بخیر من با فانکشن های متفاوتی تاریخ رو تغیر میدادم و مشکلی در این خصوص نداشتم.مثلا با دستور NOW میتونم تاریخ میلادی سیستم رو بدست بیارم اما به محض اینکه از نت فرم ورک 4 استفاده میکنم همین دستور تاریخ رو به من فارسی برمیگردونه.لطفا اگر کسی از دوستان راه کاری داره ممنون میشم راهنمایی کنه(ویندوز 10 و این رو هم بگم فقط برای یک سیستم نمیخوام لطفا این رو در نظر بگیرین که راهنمایتون تغیرات تنظیمات ساعت و تاریخ ویندوز نباشه ) با تشکر

  2. #2

    نقل قول: مشکل تاریخ در نت فرم ورک 4 به بالا

    حروف فارسی ؟ یا شمسی؟

    کد بزارید. برای بار چندهزارم داریم میگیم.

  3. #3

    نقل قول: مشکل تاریخ در نت فرم ورک 4 به بالا

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




    Public Function Miladi2Shamsi(ByVal miladiDate As Date) As String
    Dim pc As New PersianCalendar
    Dim sb As New StringBuilder
    sb.AppendFormat("{0}/{1}/{2}", pc.GetYear(miladiDate).ToString(), pc.GetMonth(miladiDate).ToString("D2"), pc.GetDayOfMonth(miladiDate).ToString("D2"))
    Return sb.ToString()
    End Function









    Function ShamsiToMiladi(ByVal ShamsiDate As String) As String
    If IsNumeric(ShamsiDate.Replace("/", "")) = False Then Return 0
    Try
    If ShamsiDate.Length <> 10 Then Return 0
    Dim Date_Sh As New Globalization.PersianCalendar()
    Dim Date_M As DateTime = Date_Sh.ToDateTime(ShamsiDate.Substring(0, 4), ShamsiDate.Substring(5, 2), _
    ShamsiDate.Substring(8, 2), _
    0, 0, 0, 0, _
    Globalization.PersianCalendar.PersianEra)
    Return Date_M.ToShortDateString
    Catch ex As Exception
    Return 0
    End Try
    End Function



  4. #4

    نقل قول: مشکل تاریخ در نت فرم ورک 4 به بالا

    ساختار datetime میلادی هست منتها در زمان نمایش ویندوز برحسب تنظیماتش شمسی نشون میده. در خط ۱۰ از متد تبدیل شمسی به میلادی از متد tostring استفاده کنید و فرمت مناسب را به پارامتر اول و invariantculture را به عنوان پارامتر دوم بهش بدید.
    https://docs.microsoft.com/en-us/dot...variantculture
    آخرین ویرایش به وسیله Mahmoud.Afrad : شنبه 16 اسفند 1399 در 21:05 عصر

  5. #5

    نقل قول: مشکل تاریخ در نت فرم ورک 4 به بالا

    سلام وقت بخیر من این دیده بودم منتحی نتونستم پیاده سازی کنم.لطفا میشه بیشتر راهنمایی کنید و یا در صورت امکان این کد رو تصیح کنید




    Public Shared Sub Main()
    Dim sw As New StreamWriter(".\DateData.dat")
    Dim dtIn As DateTime = DateTime.Now
    Dim invC As CultureInfo = CultureInfo.InvariantCulture
    sw.WriteLine(dtIn.ToString("r", invC))
    sw.Close()
    Dim sr As New StreamReader(".\DateData.dat")
    Dim input As String
    While (input = sr.ReadLine()) IsNot Nothing
    Console.WriteLine("Stored data: {0}" & vbLf, input)
    Dim dtOut As DateTime = DateTime.Parse(input, invC, DateTimeStyles.RoundtripKind)
    Dim frFr As New CultureInfo("fr-FR")
    Console.WriteLine("Date formatted for the {0} culture: {1}", frFr.Name, dtOut.ToString("f", frFr))
    Dim deDe As New CultureInfo("de-De")
    Console.WriteLine("Date formatted for {0} culture: {1}", deDe.Name, dtOut.ToString("f", deDe))
    End While
    sr.Close()
    End Sub




    البته کد بالا در خط



    While (input = sr.ReadLine()) IsNot Nothing




    این ارور رو میده



    'IsNot' requires operands that have reference types, but this operand has the value type 'Boolean'


  6. #6

    نقل قول: مشکل تاریخ در نت فرم ورک 4 به بالا

    Return Date_M.ToString( Globalization.CultureInfo.InvariantCulture)


    اگر فقط تاریخ نیاز هست با استفاده از فرمت مثلا

    Return Date_M.ToString("yyyy/MM/dd", Globalization.CultureInfo.InvariantCulture)

  7. #7

    نقل قول: مشکل تاریخ در نت فرم ورک 4 به بالا

    ممنونم دوست عزیز
    برای تبدیل شمسی به میلادی فرمایش شما درست اعمال میشه ، اما برای میلادی به شمسی چکار باید کرد ممنون میشم راهنمایی بفرمایید

    البته مشکل من توی تقویم های برعکس هست مثلا گاهی تاریخ بعضی از سیستم ها 2020/01/01 هست و گاهی 01/01/2021 که دچار مشکل میشم وگرنه این تابع مشکل رو حل میکنه




    Public Function Miladi2Shamsi(ByVal miladiDate As String) As String
    Dim [date] As DateTime = Convert.ToDateTime("" + miladiDate.Substring(0, 4) + "-" + miladiDate.Substring(5, 2) + "-" + miladiDate.Substring(8, 2) + "T00:00:00.001Z")
    Dim persianDateString As String = [date].ToString("yyyy/MM/dd", New CultureInfo("fa-IR"))
    Return persianDateString
    End Function


    آخرین ویرایش به وسیله hamidrezax1 : دوشنبه 18 اسفند 1399 در 12:51 عصر

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

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