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

نام تاپیک: تبدیل تاریخ میلادی به شمسی

  1. #1

    Red face تبدیل تاریخ میلادی به شمسی

    با سلام
    من دارم یک تابعی می نویسم که تاریخ میلادی رو به شمسی تبدیل کنه مشکل من الان مثلا تطابق تاریخ روز میلادی و شمسی است مثلا الان که 21 بهمن به میلادی می شه دهم اینو چه جوری مشخص کنم فرمولی چیزی داره؟؟؟؟

  2. #2
    سلام دوست من
    یکی از روشهایی که برای تبدیل تاریخ شمسی و میلادی استفاده میکنند به صورت زیر هست .
    اول میان سال میلادی رو به روز تبدیل میکنند .و اختلاف روزانه سال میلادی و شمسی که همیشه ثابت هست رو از اون کم میکنند و با تقسیم به عدد 365.25 به سال شمسی می رسند و باقیمانده رو به 30.5 تقسیم می کنند و ماه رو بدست میارند و باقیمانده روز ها هستش .
    امید وارم بهت کمک کنه .

  3. #3
    منظورتون رو نفهمیدم سال رو به روز تبدیل می کنن؟؟؟یعنی چی؟

  4. #4
    شما چرا راهی رو که قبلا دیگران رفته اند دوباره طی می کنید؟

  5. #5
    کاربر تازه وارد آواتار netspc
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    India
    پست
    81




    Private Function MiladiToShamsi(ByRef ShYear As Integer, ByRef ShMonth As Integer, ByRef ShDay As Integer) As Integer
    Dim num1 As Integer
    Me.DayLength = DateAndTime.Now.DayOfYear
    If (Me.DayLength > 79) Then
    Me.DayLength = (DateAndTime.Now.DayOfYear - 79)
    ShYear = (DateAndTime.Now.Year - 621)
    If (Me.DayLength <= 186) Then
    If ((Me.DayLength Mod 31) = 0) Then
    ShMonth = (Me.DayLength / 31)
    ShDay = 31
    Return num1
    End If
    ShMonth = (1 + (Me.DayLength / 31))
    ShDay = (Me.DayLength Mod 31)
    Return num1
    End If
    Me.DayLength = (Me.DayLength - 186)
    If ((Me.DayLength Mod 30) = 0) Then
    ShMonth = (6 + (Me.DayLength / 30))
    ShDay = 30
    Return num1
    End If
    ShMonth = (7 + (Me.DayLength / 30))
    ShDay = (Me.DayLength Mod 30)
    Return num1
    End If
    ShYear = (DateAndTime.Now.Year - 622)
    Me.DeyDifference(Me.DeyDiff)
    If Me.IsKabiseh(ShYear) Then
    If (Me.DayLength = 79) Then
    ShDay = 30
    ShMonth = 12
    Return num1
    End If
    If (Me.DayLength = 49) Then
    ShDay = 30
    ShMonth = 11
    Return num1
    End If
    If (Me.DayLength = 19) Then
    ShDay = 30
    ShMonth = 10
    Return num1
    End If
    ShMonth = (((Me.DayLength + Me.DeyDiff) / 30) + 10)
    ShDay = ((Me.DayLength + Me.DeyDiff) Mod 30)
    Return num1
    End If
    ShMonth = (((Me.DayLength + Me.DeyDiff) / 30) + 10)
    ShDay = ((Me.DayLength + Me.DeyDiff) Mod 30)
    Return num1
    End Function




  6. #6
    کاربر تازه وارد آواتار shervin110uk
    تاریخ عضویت
    مرداد 1385
    محل زندگی
    تهران.نیاوران
    پست
    69
    این یک تابع فوق العاده تبدیل تاریخ میلادی به تاریخ شمسی هستش... کلی امکانات که فکر میکنم کمتر دی ال الی پیدا کنی که اینجوری باشه ... تازه خیلی توضیح داده شده دربارش و حتی یک مثال عملی فوق العادم داره... توی ویژوال استودیو 2005 هم کار داده به من... میخوای یک تستیش بکن
    http://rapidshare.com/files/15836088...oolsSample.zip
    آخرین ویرایش به وسیله titbasoft : یک شنبه 22 بهمن 1385 در 13:22 عصر

  7. #7
    با سلام
    چرا از Persiancalender استفاده نمی کنید؟

  8. #8

    Red face

    بابا اصلا پشیمون شدم

  9. #9

    تبدیل تاریخ

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

    PersianCalendar p = new PersianCalendar();
    string Shamsi = p.GetYear(DateTime.Now).ToString().Substring(2,2) + "/" + p.GetMonth(DateTime.Now) + "/" + p.GetDayOfMonth(DateTime.Now); //Finish


  10. #10
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    مرداد 1386
    پست
    8
    به حروف نوشتناعداد در vb.net

  11. #11
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    مرداد 1386
    پست
    8
    به حروف نوشتن اعداد در vb.net

  12. #12
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    مرداد 1386
    پست
    8

    Post

    به حروف نوشتن اعداد در vb.net

  13. #13
    من یک روز شمار تاریخ شمسی ساده و آماتور برای asp.net نوشتم که تا سال 2040 اعتبار داره و حتی سال کبیسه رو هم میتونه تشخیص بده که کد کاملش رو میگذارم اینجا ، البته با vs 2003 نوشتم نمیدونم توی نسخه های دیگه جواب میده یا نه ،فکر کنم بتونه توی قدم اول کمکتون کنه




    PublicClass Calendar
    Inherits System.Web.UI.Page

    Dim MYear AsDouble = CDbl(Tarikh.Now.Year)
    Dim Day AsInteger = CInt(Tarikh.Now.Day)
    Dim Month AsInteger = CInt(Tarikh.Now.Month)
    Dim WeekNo AsInteger = CInt(Tarikh.Now.DayOfWeek)
    Dim Kyear AsDouble
    Dim Kabise AsInteger
    Dim SYear AsDouble = (MYear - 621)
    Dim Tarikh AsDate
    Dim RoozHafteh, DayWeek AsString
    Dim Rooz AsInteger
    Dim Mah, Moon AsString
    ProtectedWithEvents Label2 As System.Web.UI.WebControls.Label
    ProtectedWithEvents Label1 As System.Web.UI.WebControls.Label



    PrivateFunction Calendar()
    SelectCase WeekNo
    Case 1
    RoozHafteh = " دوشنبه "
    DayWeek = " Monday "
    Case 2
    RoozHafteh = " سه شنبه "
    DayWeek = "Tuesday "
    Case 3
    RoozHafteh = " چهار شنبه "
    DayWeek = " Wednesday "
    Case 4
    RoozHafteh = " پنجشنبه "
    DayWeek = " Thursday "
    Case 5
    RoozHafteh = " جمعه "
    DayWeek = " Friday "
    Case 6
    RoozHafteh = " شنبه "
    DayWeek = " Saturday "
    Case 0
    RoozHafteh = " یکشنبه "
    DayWeek = " Sunday "
    EndSelect
    If Month = 3 Then
    Moon = "March"
    IfCInt(MYear) = CInt(Kyear) Then
    SelectCase Day
    Case 1 To 20
    SYear = (MYear - 621.78630136986)
    Mah = " اسفند "
    Rooz = Day + 10
    Case 21 To 31
    Rooz = Day - 19
    Mah = " فروردین "
    EndSelect
    Else
    SelectCase Day
    Case 1 To 20
    SYear = (MYear - 621.78630136986)
    Mah = " اسفند "
    Rooz = Day + 9
    Case 21 To 31
    Rooz = Day - 20
    Mah = " فروردین "
    EndSelect
    EndIf
    ElseIf Month = 4 Then
    Moon = "April"
    SelectCase Day
    Case 1 To 20
    Rooz = Day + 11
    Mah = " فروردین "
    Case 21 To 30
    Rooz = Day - 20
    Mah = " اردیبهشت "
    EndSelect
    ElseIf Month = 5 Then
    Moon = "May"
    SelectCase Day
    Case 1 To 21
    Mah = " اردیبهشت "
    Rooz = Day + 10
    Case 22 To 31
    Mah = " خرداد "
    Rooz = Day - 21
    EndSelect
    ElseIf Month = 6 Then
    Moon = "June"
    SelectCase Day
    Case 1 To 21
    Mah = " خرداد "
    Rooz = Day + 10
    Case 22 To 30
    Mah = " تیــر "
    Rooz = Day - 21
    EndSelect
    ElseIf Month = 7 Then
    Moon = "July"
    SelectCase Day
    Case 1 To 22
    Mah = " تیــر "
    Rooz = Day + 9
    Case 23 To 31
    Mah = " مـرداد "
    Rooz = Day - 22
    EndSelect
    ElseIf Month = 8 Then
    Moon = "August"
    SelectCase Day
    Case 1 To 22
    Mah = " مـرداد "
    Rooz = Day + 9
    Case 23 To 31
    Mah = " شـهریور "
    Rooz = Day - 22
    EndSelect
    ElseIf Month = 9 Then
    Moon = "September"
    SelectCase Day
    Case 1 To 22
    Rooz = Day + 9
    Mah = " شـهریور "
    Case 23 To 30
    Mah = " مــهــر "
    Rooz = Day - 22
    EndSelect
    ElseIf Month = 10 Then
    Moon = "October"
    SelectCase Day
    Case 1 To 22
    Mah = " مــهــر "
    Rooz = Day + 8
    Case 23 To 31
    Mah = " آبــان "
    Rooz = Day - 22
    EndSelect
    ElseIf Month = 11 Then
    Moon = "November"
    SelectCase Day
    Case 1 To 21
    Mah = " آبــان "
    Rooz = Day + 9
    Case 22 To 30
    Mah = " آذر "
    Rooz = Day - 21
    EndSelect
    ElseIf Month = 12 Then
    Moon = "December"
    SelectCase Day
    Case 1 To 21
    Mah = " آذر "
    Rooz = Day + 9
    Case 22 To 31
    Mah = " دی "
    Rooz = Day - 21
    EndSelect
    ElseIf Month = 1 Then
    Moon = "January"
    SYear = (MYear - 621.78630136986)
    SelectCase Day
    Case 1 To 20
    Mah = " دی "
    Rooz = Day + 10
    Case 21 To 31
    Mah = " بـهمن "
    Rooz = Day - 20
    EndSelect
    ElseIf Month = 2 Then
    SYear = (MYear - 621.78630136986)
    Moon = "February"
    IfCInt(MYear) = CInt(Kyear) Then
    SelectCase Day
    Case 1 To 19
    Mah = " بـهمن "
    Rooz = Day + 11
    Case 20 To 29
    Mah = " اسفند "
    Rooz = Day - 19
    EndSelect
    Else
    SelectCase Day
    Case 1 To 19
    Mah = " بـهمن "
    Rooz = Day + 11
    Case 20 To 28
    Mah = " اسفند "
    Rooz = Day - 19
    EndSelect
    EndIf
    EndIf
    Label1.Text = " امروز " + RoozHafteh + CStr(Rooz) + Mah + CStr(CInt(SYear))
    Label2.Text = "Today is " & (DayWeek) & " " &
    CStr(Day) & " " & (Moon) & " " & CStr(MYear)
    EndFunction




    PrivateFunction Kabiseh()
    Kabiseh =
    CInt(Tarikh.Now.Year)
    SelectCase Kabiseh
    Case 2000, 2004, 2008, 2012, 2016, 2020, 2024, 2028, 2032, 2036, 2040
    Tarikh.Now.AddDays(1)
    Kyear = Tarikh.Now.Year
    EndSelect
    EndFunction


  14. #14
    کاربر دائمی آواتار programmermp
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    Green Territory of North
    پست
    732

    Talking

    همانطور که دوستمون گفت

    چرا باید چرخ را دوباره اختراع کنیم

    وقتی این همه مبدل تاریخ میلادی به شمسی هست چرا دوباره بنویسیمش ؟؟؟؟؟؟؟؟؟؟

  15. #15
    آقا خواهش می کنم یکی منو کمک کنه:
    من برای تبدیل تاریخ از تابع زیر استفاده می کنم ولی یک اشکالی که داره اینه که ماه و روز رو اگر عددی یک رقمی باشه یک رقمی نشون میده، چجور میشه 2/5/1386 را اینجوری نشون داد: 02/05/1386

    Function MiladiToShamsi(ByVal Year AsDate) AsString
    Dim A AsDate = Year
    Dim B AsNew System.Globalization.PersianCalendar
    Return B.GetYear(A) & "/" & B.GetMonth(A) & "/" & B.GetDayOfMonth(A)
    EndFunction


    خواهش میکنم کمک کنید!

  16. #16
    کاربر دائمی آواتار programmermp
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    Green Territory of North
    پست
    732

    Talking

    خوب ورودی رو اگه 02/06/2007 بدی فکر کنم مشکلت حل بشه

    البته تست نکردم خودم ها من از ابزار تبدیل تاریخ persian tools استفاده می کنم

    و مشکلی هم ندارم تاریخ رو به صورت حروف و عدد کوتاه و بلند خروجی می ده

  17. #17
    میشه در مورد Persian tools و چگونی استفادش بیشتر توضیح بدید

  18. #18
    سلام به همگی.
    من بعد از مدتی اومدم.
    بیا عزیز این کد تبدیل:

    Dim myCulture AsNew Globalization.CultureInfo("fa-IR")
    Dim mylanguage As InputLanguage
    InputLanguage.CurrentInputLanguage = mylanguage.FromCulture(myCulture)
    Dim _day, _days, _year, _mounth AsInteger
    _day = Now.DayOfYear
    _year = Now.Year
    _year -= 621
    If _day < 78 Then
    _year -= 1
    If _day < 19 Then
    _mounth = 10
    _days = _day + 11
    Else
    If _day < 50 Then
    _mounth = 11
    _days = _day - 20
    Else
    _mounth = 12
    _days = _day - 50
    EndIf
    EndIf
    Else
    If _day < 110 Then
    _mounth = 1
    _days = _day - 79
    Else
    If _day < 141 Then
    _mounth = 2
    _days = _day - 110
    Else
    If _day < 172 Then
    _mounth = 3
    _days = _day - 141
    Else
    If _day < 203 Then
    _mounth = 4
    _days = _day - 172
    Else
    If _day < 234 Then
    _mounth = 5
    _days = _day - 203
    Else
    If _day < 265 Then
    _mounth = 6
    _days = _day - 234
    Else
    If _day < 295 Then
    _mounth = 7
    _days = _day - 265
    Else
    If _day < 325 Then
    _mounth = 8
    _days = _day - 295
    Else
    If _day < 355 Then
    _mounth = 9
    _days = _day - 325
    Else
    _mounth = 10
    _days = _day - 355
    EndIf
    EndIf
    EndIf
    EndIf
    EndIf
    EndIf
    EndIf
    EndIf
    EndIf
    EndIf
    'AxMaskEdBox1.defaultText = _year & "/" & _mounth & "/" & _days
    'AxMaskEdBox1.Mask = _year & "/" & _mounth & "/" & _days
    Label8.Text = _year & "/" & _mounth & "/" & _days

  19. #19
    من در مورد persian tools گشتم و کامپوننتشو پیدا کردم، چیزه جالبی بود و واقعا کارمو راه انداخت، دیگه از اون تابع miladitoshamsi استفاده نمی کنم

  20. #20
    آقای miassus10 خوب نتیجه جستوجو تون رو اینجا هم میزاشتین

  21. #21
    سلام
    پرشین تولز توی این تایپک قرار داره از پست سوم میتونی بگیریش

    https://barnamenevis.org/showthread.php?t=28289

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

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