PDA

View Full Version : سوال: بدست اوردن اولین روز ماه



Purya Fallah
جمعه 10 مرداد 1393, 10:27 صبح
سلام . من دنباله یه تابع میگردم که باهاش بشه اولین روز ماه رو به صورت شمسی بدست .

محمد فدوی
جمعه 10 مرداد 1393, 11:25 صبح
منظورت رو از سوالت نفهمیدم ولی برای استفاده از تاریخ جلالی توی NET. از کلاس PersianCalendar (http://msdn.microsoft.com/en-us/library/system.globalization.persiancalendar(v=vs.110).asp x) استفاده کن.

Purya Fallah
جمعه 10 مرداد 1393, 12:44 عصر
منظورت رو از سوالت نفهمیدم ولی برای استفاده از تاریخ جلالی توی NET. از کلاس PersianCalendar (http://msdn.microsoft.com/en-us/library/system.globalization.persiancalendar(v=vs.110).asp x) استفاده کن.مثلا تابع ورودی رو به این شکل میگیره :1393/2بعد خروجی رو به شکل روز هفته برمیگردونه :شنبه (اولین روز ماه)

محمد آشتیانی
جمعه 10 مرداد 1393, 13: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, 22:27 عصر
ممنون . تابعی نیست که ورودیش به صورت شمسی باشه . چون با این تابع اول باید تاریخ رو به صورت میلادی در بیارم .

gilsoft
شنبه 11 مرداد 1393, 16: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, 20: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, 02:39 صبح
سلام .من کد شما رو تست کردم در بعضی از مواقع خروجی اشتباه میده .برای مثال 1393/10 رو سه شنبه برمیگردونه ولی درستش دوشنبه هست .

سلام دوست عزیز

کد پست 6# اصلاح شد ...

موفق باشید .....