View Full Version : سوال: بدست اوردن اولین روز ماه
  
Purya Fallah
جمعه 10 مرداد 1393, 11:27 صبح
سلام . من دنباله یه تابع میگردم که باهاش بشه اولین روز ماه رو به صورت شمسی بدست .
محمد فدوی
جمعه 10 مرداد 1393, 12:25 عصر
منظورت رو از سوالت نفهمیدم ولی برای استفاده از تاریخ جلالی توی NET. از کلاس PersianCalendar (http://msdn.microsoft.com/en-us/library/system.globalization.persiancalendar(v=vs.110).asp x) استفاده کن.
Purya Fallah
جمعه 10 مرداد 1393, 13:44 عصر
منظورت رو از سوالت نفهمیدم ولی برای استفاده از تاریخ جلالی توی NET. از کلاس PersianCalendar (http://msdn.microsoft.com/en-us/library/system.globalization.persiancalendar(v=vs.110).asp x) استفاده کن.مثلا تابع ورودی رو به این شکل میگیره :1393/2بعد خروجی رو به شکل روز هفته برمیگردونه :شنبه (اولین روز ماه)
محمد آشتیانی
جمعه 10 مرداد 1393, 14:42 عصر
سلام
این تابع خروجی مورد نظرت رو میده ، ورودی تاریخ میلادی یک روز ماه هست و خروجی تاریخ و اسم روز اولین روز ماه
البته تابع دوم و سوم مورد استفاده تابع اول هستن.
تابع دوم تاریخ کامل شمسی برمیگردونه : مثلا 01/05/1393
تابع سوم اسم  فارسی روز رو برمیگردونه
   Public Function MonthFirstDay(ByVal ThisDate As Date) As String
        Dim PersianDate As New PersianCalendar
        Dim Today As Integer
        Dim FResult As String
        Today = CInt(PersianDate.GetDayOfMonth(ThisDate)) - 1
        ThisDate = ThisDate.AddDays(-1 * Today)
        FResult = ToPersianDate(ThisDate)
        Return FResult & "   " & PersianDayName(ThisDate)
    End Function
    Public Function ToPersianDate(ByVal ThisDate As String) As String
        Dim PersianDate As New PersianCalendar
        Dim DayX, MonthX, YearX As String
        DayX = CStr(CInt(PersianDate.GetDayOfMonth(ThisDate))).Pa dLeft(2, "0")
        MonthX = CStr(PersianDate.GetMonth(ThisDate)).PadLeft(2, "0")
        YearX = CStr(PersianDate.GetYear(ThisDate))
        Return YearX & "/" & MonthX & "/" & DayX
    End Function
    Public Function PersianDayName(ByVal ThisDate As String) As String
        Dim FResult As String
        Dim PersianDate As New PersianCalendar
        Dim DayX As String = PersianDate.GetDayOfWeek(ThisDate)
        Select Case CInt(DayX)
            Case 0
                FResult = "یکشنبه"
            Case 1
                FResult = "دوشنبه"
            Case 2
                FResult = "سه شنبه"
            Case 3
                FResult = "چهارشنبه"
            Case 4
                FResult = "پنج شنبه"
            Case 5
                FResult = "جمعه"
            Case 6
                FResult = "شنبه"
            Case Else
                FResult = ""
        End Select
        Return FResult
    End Function
Purya Fallah
جمعه 10 مرداد 1393, 23:27 عصر
ممنون . تابعی نیست که ورودیش به صورت شمسی باشه . چون با این تابع اول باید تاریخ رو به صورت میلادی در بیارم .
gilsoft
شنبه 11 مرداد 1393, 17:57 عصر
ممنون . تابعی نیست که ورودیش به صورت شمسی باشه . چون با این تابع اول باید تاریخ رو به صورت میلادی در بیارم .
سلام دوست عزیز
ضمن تشکر از دوست خوبم جناب Mohammad.Ashtiani (http://barnamenevis.org/member.php?12815-Mohammad-Ashtiani)  من کد زیر رو براتون آماده کردم ....
Public Class Form1
 Public Function GetFirstDayInMonth(pDate As String) As String
        Dim GPC As New System.Globalization.PersianCalendar
        Dim splt() As String = pDate.Split("/")
        Dim value As String = ""
        Dim Dow As DayOfWeek = GPC.ToDateTime(CInt(splt(0)), CInt(splt(1)), 1, 0, 0, 0, 0).DayOfWeek
        Select Case Dow
            Case 0 : value = "یکشنبه"
            Case 1 : value = "دوشنبه"
            Case 2 : value = "سه شنبه"
            Case 3 : value = "چهارشنبه"
            Case 4 : value = "پنج شنبه"
            Case 5 : value = "جمعه"
            Case 6 : value = "شنبه"
            Case Else
                value = ""
        End Select
        Return (value)
    End Function
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Label1.Text = GetFirstDayInMonth(TextBox1.Text)
    End Sub
End Class
موفق باشید ....
Purya Fallah
پنج شنبه 30 مرداد 1393, 21:54 عصر
سلام دوست عزیزضمن تشکر از دوست خوبم جناب Mohammad.Ashtiani (http://barnamenevis.org/member.php?12815-Mohammad-Ashtiani)  من کد زیر رو براتون آماده کردم ....Public Class Form1    Public Function GetFirstDayInMonth(pDate As String) As String        Dim GPC As New System.Globalization.PersianCalendar        Dim value As String = ""Dim splt() As String = pDate.Split("/")        Dim FirstDay As String = String.Format("{0}/{1:00}/{2:00}", splt(0).Trim, splt(1).Trim, "01")Dim Dow As DayOfWeek = GPC.GetDayOfWeek(FirstDay)        Select Case CInt(Dow)            Case 0 : value = "یکشنبه"            Case 1 : value = "دوشنبه"            Case 2 : value = "سه شنبه"            Case 3 : value = "چهارشنبه"            Case 4 : value = "پنج شنبه"            Case 5 : value = "جمعه"            Case 6 : value = "شنبه"            Case Else                value = ""        End Select        Return (value)    End Function       Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click        Label1.Text = GetFirstDayInMonth(TextBox1.Text)    End SubEnd Classموفق باشید ....سلام .من کد شما رو تست کردم در بعضی از مواقع خروجی اشتباه میده .برای مثال 1393/10 رو سه شنبه برمیگردونه ولی درستش دوشنبه هست .
gilsoft
جمعه 31 مرداد 1393, 03:39 صبح
سلام .من کد شما رو تست کردم در بعضی از مواقع خروجی اشتباه میده .برای مثال 1393/10 رو سه شنبه برمیگردونه ولی درستش دوشنبه هست .
سلام دوست عزیز
کد پست 6# اصلاح شد ...
موفق باشید .....
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.