PDA

View Full Version : سوال: چطور تشخیص بدم اولین روز ماه چند شنبه است؟



Hadiir.net
پنج شنبه 01 اردیبهشت 1390, 13:46 عصر
با سلام
دارم روی یه برنامه تقویمی کار میکنم و یه مشکل دارم
میخوام تشخیص بدم اولین روز ماه چند شنبه است که بر اساس اون سایر روزها رو شماره بندی کنم؟
چطوری میشه اینکار رو انجام داد؟
با تشکر

Mani_rf
پنج شنبه 01 اردیبهشت 1390, 15:24 عصر
سال و ماه و روز اول ماه را به PersianCalender بده و با تابع GetDayOfWeek عدد روز را به دست بی آور و به روز هفته تبدیل کن .
برای مثال به شما 3 بر می گرداند که مشخص کننده این است که اولین روز ماه چهارشنبه است.

Hadiir.net
پنج شنبه 01 اردیبهشت 1390, 16:36 عصر
ممکنه برام کدشو بزاری
با تشکر

bhasoft
پنج شنبه 01 اردیبهشت 1390, 16:46 عصر
با سلام و با اجازه از آقا ماني:
دوست عزيز من كد هجري رو بهت ميدم.

با اين دستور فراخواني كن و استفاده كن:

Daysfa(shamsi.GetDayOfWeek(Now))


Private Function Daysfa(ByVal ruz As String) As String

Daysfa = ""

Select Case ruz
Case 6
Daysfa = "شنبه"
Case 0
Daysfa = "يكشنبه"
Case 1
Daysfa = "دوشنبه"
Case 2
Daysfa = "سه شنبه"
Case 3
Daysfa = "چهارشنبه"
Case 4
Daysfa = "پنجشنبه"
Case 5
Daysfa = "جمعه"
End Select

End Function


من اين تابع رو برات نوشتم كه هرجا خواستي استفاده كني.
درضمن دستور زير رو هم براي برنامت تعريف كن كه دستورات هجري رو بشناسه.
بازم اگه كمكي از دستم بر مياد من در خدمتم.

Public shamsi As New Globalization.PersianCalendar

موفق باشيد.../

Hadiir.net
یک شنبه 11 اردیبهشت 1390, 18:08 عصر
دوست عزیز ضمن تشکر از شما من تست کردم اما این کدها فقط روز جاری هفته رو میدن و نه روزیکه ماه با اون شروع میشه من یه کدی میخوام که تشخیض بده اولین روز ماه چند شنبه است ؟

bhasoft
یک شنبه 11 اردیبهشت 1390, 20:31 عصر
با سلام دوست عزيز.
شما خودتون ميتونين كدهارو اصلاح كنين، اگه با سوالتون جور در نمياد!
فكر كنم اونجوري بهتر به جواب ميرسين.
كافيه روي تابع هجري تسلط داشته باشين.

به عنوان مثال:

week = هفته
day = روز
Month = ماه
و الي آخر
البته شايد به محاسبات رياضي هم رو بندازين!
ميتونين برنامرو با سليقه خودتون تغيير بدين.
بسته به احتياجات فرديتون.
بازهم اگه مشكلي بود در خدمتم.
موفق باشيد/.

barbodsoft.com
یک شنبه 11 اردیبهشت 1390, 23:51 عصر
کد بالا رو به این شکل تغییر بده درست می شه.



Public Class Form1
Public shamsi As New Globalization.PersianCalendar

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Daysfa(shamsi.GetDayOfWeek(Now))
Dim str As String = shamsi.GetYear(Now) & "/" & shamsi.GetMonth(Now) & "/01"
str = ShamsiToMiladi(str)
MsgBox(Daysfa(shamsi.GetDayOfWeek(CType(str, Date))))
End Sub

Public Function ShamsiToMiladi(ByVal SDate As String) As String

Dim pc As New Globalization.PersianCalendar
ShamsiToMiladi = ""
Dim Tarikh
Tarikh = Split(SDate, "/")
ShamsiToMiladi = (pc.ToDateTime(Tarikh(0), Tarikh(1), Tarikh(2), 0, 0, 0, 0))
Return ShamsiToMiladi
End Function

Private Function Daysfa(ByVal ruz As String) As String

Daysfa = ""

Select Case ruz
Case 6
Daysfa = "شنبه"
Case 0
Daysfa = "يكشنبه"
Case 1
Daysfa = "دوشنبه"
Case 2
Daysfa = "سه شنبه"
Case 3
Daysfa = "چهارشنبه"
Case 4
Daysfa = "پنجشنبه"
Case 5
Daysfa = "جمعه"
End Select

End Function
End Class