PDA

View Full Version : تابع معادل date() asp کلاسیک در asp.net2



desinger2007
دوشنبه 26 آذر 1386, 12:49 عصر
با سلام
من از این کد در asp کلاسیک برای تبدیل تاریخ میلادی به شمسی استفاده میکردم


Dim y, m, d, st
y = Year(OfDate)()
m = Month(OfDate)()
d = Day(OfDate)()
If (m = 1) Then
If (d = 1) Then
d = 11
m = 10
y = y - 622
ElseIf (2 <= d) And (d <= 20) Then
d = d + 10
m = 10
y = y - 622
ElseIf (21 <= d) And (d <= 31) Then
d = d - 20
m = 11
y = y - 622
EndIf
ElseIf (m = 2) Then
If (1 <= d) And (d <= 19) Then
d = d + 11
m = 11
y = y - 622
ElseIf (20 <= d) And (d <= 29) Then
d = d - 19
m = 12
y = y - 622
EndIf
ElseIf (m = 3) Then
If (1 <= d) And (d <= 19) Then
d = d + 10
m = 12
y = y - 622
ElseIf (21 <= d) And (d <= 31) Then
d = d - 20
m = 1
y = y - 621
EndIf
ElseIf (m = 4) Then
If (1 <= d) And (d <= 20) Then
d = d + 11
m = 1
y = y - 621
ElseIf (21 <= d) And (d <= 30) Then
d = d - 20
m = 2
y = y - 621
EndIf
ElseIf (m = 5) Then
If (1 <= d) And (d <= 21) Then
d = d + 10
m = 2
y = y - 621
ElseIf (22 <= d) And (d <= 31) Then
d = d - 21
m = 3
y = y - 621
EndIf
ElseIf (m = 6) Then
If (1 <= d) And (d <= 21) Then
d = d + 10
m = 3
y = y - 621
ElseIf (21 <= d) And (d <= 30) Then
d = d - 21
m = 4
y = y - 621
EndIf
ElseIf (m = 7) Then
If (1 <= d) And (d <= 22) Then
d = d + 9
m = 4
y = y - 621
ElseIf (23 <= d) And (d <= 31) Then
d = d - 22
m = 5
y = y - 621
EndIf
ElseIf (m = 8) Then
If (1 <= d) And (d <= 22) Then
d = d + 9
m = 5
y = y - 621
ElseIf (23 <= d) And (d <= 31) Then
d = d - 22
m = 6
y = y - 621
EndIf
ElseIf (m = 9) Then
If (1 <= d) And (d <= 22) Then
d = d + 9
m = 6
y = y - 621
EndIf
If (23 <= d) And (d <= 30) Then
d = d - 22
m = 7
y = y - 621
EndIf
ElseIf (m = 10) Then
If (1 <= d) And (d <= 22) Then
d = d + 8
m = 7
y = y - 621
ElseIf (23 <= d) And (d <= 31) Then
d = d - 22
m = 8
y = y - 621
EndIf
ElseIf (m = 11) Then
If (1 <= d) And (d <= 21) Then
d = d + 9
m = 8
y = y - 621
ElseIf (22 <= d) And (d <= 30) Then
d = d - 21
m = 9
y = y - 621
EndIf
ElseIf (m = 12) Then
If (1 <= d) And (d <= 21) Then
d = d + 9
m = 9
y = y - 621
ElseIf (22 <= d) And (d <= 31) Then
d = d - 21
m = 10
y = y - 621
EndIf
EndIf
st = d & "/" & m & "/" & y

و حالا میخوام در asp.net2 اونو استفاده کنم میخواستم بدونم به جای تابع

y = Year(OfDate)()
m = Month(OfDate)()
d = Day(OfDate)()
در asp.net از چه توابعی باید استفاده کنیم و چه چیزهایی رو import کنیم؟؟

mahdi_farhani
دوشنبه 26 آذر 1386, 13:59 عصر
اگر از .net 2 استفاده میکنه این همه دردسر نمیخواهد ،از PersianCalender خودت دات نت استفاده کن . اگر یه سرچ بکنی یه کلاس گذاشتم که اینکارو براتون انجام میده .

merlin_vista
دوشنبه 26 آذر 1386, 14:02 عصر
دوست عزیز میتونی از PersianCalendar خود دات نت استفاده کنی !!

System.Globalization.PersianCalendar pc = new System.Globalization.PersianCalendar();

merlin_vista
دوشنبه 26 آذر 1386, 14:03 عصر
آقای mahdei_farhani (http://barnamenevis.org/forum/member.php?u=6523) من وقتی آمدم جواب بدم چیزی نبود ، بعد که جواب را ارسال کردم مال شما هم آمد !! فکر کنم دوتایی هم زمان ارسال کردیم !
اینا گفتم مشکل پیش نیاد !!
پاینده باشی

maxpayn2
دوشنبه 26 آذر 1386, 14:19 عصر
یه dll توپ هم هست به نام Farsi Library

desinger2007
دوشنبه 26 آذر 1386, 16:04 عصر
ممنونم ولی من کدهای معادل این ها رو لازم دارم
y = Year(OfDate)()
m = Month(OfDate)()
d = Day(OfDate)()

mahdi_farhani
دوشنبه 26 آذر 1386, 17:05 عصر
DateTime.Now.Day
dateTime.now.Month
DateTime.Now.Year

ولی چرا داری لغمه رو می چرخونی ، آیا به کدهای که نوشتی مطمئن هستی ؟ سال کبیسه رو چک کردی ، تاریخ های خاصی مثل 29/02 رو چک کردی ، این تاریخ همون سال کبیسه به میلادی .............................

desinger2007
دوشنبه 26 آذر 1386, 19:02 عصر
ممنونم نه مشکل چیزه دیگه ای

desinger2007
سه شنبه 27 آذر 1386, 10:36 صبح
سلام راستی یه سوال دیگه هم داشتم که واقعا ممنون میشم اگه جوابمو بدین
این کدهایی که من در asp کلاسیک برای پیدا کردن ماکزیمم مقدار فیلد id از جدول و قرار دادن در یه متغیر استفاده کردم

dim strsql,objrec
strsql="select max(id)as x from sefaresh"
set objrec=server.createobject("adodb.recordset")
objrec.open strsql,objconn, ,adlockoptimistic
dim maxid
maxid=objrec("x")


در محیط ویژوال برای این کار از چه objectها و دستوراتی میتونم استفاده کنم البته من در vwd2005 بعد از نوشتن این کدها در رویداد کلیک دکمه از این کدها استفاده کردم

Dim myOleDbConn2 AsNew OleDbConnection(ConnStr)
myOleDbConn2.Open()
Dim sql2 AsString = "insert into sefareshat(id,mahsol) values('" & maxid & "','" & mahsol.SelectedItem.Value & "')"
Dim myOleDbCmd2 AsNew OleDbCommand(sql2, myOleDbConn2)

که خطا گرفت:
Operator '&' is not defined for string "insert into sefareshat(id,mahsol" and type 'Field'