PDA

View Full Version : مشکل در تاریخ



mehr83
شنبه 27 تیر 1388, 19:33 عصر
برای بدست آوردن شماره روز از کد زیر استفاده می‌کنم

Dim s As Integer
s = Weekday(Now)
TextBox1.Text = WeekdayName(s)

برنامه‌ام تا دیروز درست کار می‌کرد
اما الان یک روز عقب نشان میده
روز سیستم شنبه هست و باید عدد 1 را برگردونه اما عدد 7 بر می‌گردونه
بعارتی به جای saturday
Friday بر می‌گردونه

----------------------------------------------------------------------
فروش ويژه مجموعه كامل محصولات آموزش برنامه نويسي AppDev
Asp.NET , Visual Basic.NET , Visual C#.NET , SQL Server 2008 , Web Service , LINQ , Html , Xml , SharePoint
اطلاعات بيشتر در
http://sadrasystem.org (http://sadrasystem.org/)

parhamb
شنبه 27 تیر 1388, 19:50 عصر
دوست عزیز می تونی از کد زیر هم استفاده کنی

Label1.Text = Date.Now.DayOfWeek

mehr83
شنبه 27 تیر 1388, 20:01 عصر
با این کد هم عدد 6 رو میده
در صورتی که روز سیستم من شنبه هست و باید 1 برگردونه

----------------------------------------------------------------------
فروش ويژه مجموعه كامل محصولات آموزش برنامه نويسي AppDev
Asp.NET , Visual Basic.NET , Visual C#.NET , SQL Server 2008 , Web Service , LINQ , Html , Xml , SharePoint
اطلاعات بيشتر در
http://sadrasystem.org (http://sadrasystem.org/)

abbaseftekhari
شنبه 27 تیر 1388, 20:15 عصر
سلام
خوب درست است دیگر امروز شنبه است و روز 6 رو میده چون میلادی محاسبه می شه نه شمسی.

parhamb
شنبه 27 تیر 1388, 20:25 عصر
با این کد می تونی خود روز رو بنویسی

Dim PerC As New System.Globalization.PersianCalendar
Dim newdate
Dim currentdate As DateTime
currentdate = System.DateTime.Now
newdate = (PerC.GetDayOfWeek(currentdate).ToString)

mhbshn
شنبه 27 تیر 1388, 23:15 عصر
كد تبديل تاريخ ميلادي به شمسي

Dim day, month, year, today As String
day = Now.Day.ToString
month = Now.Month.ToString
year = Now.Year.ToString
today = year + "/" + month + "/" + day
Label1.Text = today
If month <= 3 And day < 21 Then
year = year - 622
Else : year = year - 621
End If
Dim months() As String = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"}
Select Case month
Case 1 : If day < 21 Then
month = 10
day = day + 10
Else
month = 11
day = day - 20
End If
Case 2 : If day < 20 Then
month = 11
day = day + 11
Else
month = 1
day = day - 19
End If
Case 3 : If day < 21 Then
month = 12
day = day + 9
Else
month = 1
day = day - 20
End If
Case 4 : If day < 21 Then
month = 1
day = day + 11
Else
month = 2
day = day - 20
End If
Case 5 Or 6 : If day < 22 Then
month = month - 3
day = day + 10
Else
month = month - 2
day = day - 21
End If
Case 7 Or 8 Or 9 : If day < 23 Then
month = month - 3
day = day + 9
Else
month = month - 9
day = day - 22
End If
Case 10 : If day < 23 Then
month = 7
day = day + 8
Else
month = 8
day = day - 22
End If
Case 11 Or 12 : If day < 22 Then
month = month - 3
day = day + 9
Else
month = month - 2
day = day - 21
End If
End Select
If day = "1" Or day = "2" Or day = "3" Or day = "4" Or day = "5" Or day = "6" Or day = "7" Or day = "8" Or day = "9" Then
day = "0" + day
End If
MaskedTextBox1.Text = (year + months(month - 1) + day)

parhamb
شنبه 27 تیر 1388, 23:55 عصر
لازم نیست که تاریخ میلادی رو به شمسی تبدیل کرد چون خود net. این کنسول رو داره و اینم کدش هست:

Dim PerC As New System.Globalization.PersianCalendar
Dim newdate
Dim currentdate As DateTime
currentdate = System.DateTime.Now.DayOfWeek.ToString
newdate = (PerC.GetYear(currentdate) & "/" & PerC.GetMonth(currentdate) & "/" & PerC.GetDayOfMonth(currentdate)).ToString
Label1.Text = newdateالبته این کدی هم که mhbshn (http://barnamenevis.org/forum/member.php?u=100163) زحمت کشیدند نوشتند درست است.