PDA

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



علی میرجلیلی
یک شنبه 10 خرداد 1388, 15:45 عصر
دوستان سلام

من توی پوشه App_Code یه کلاس برای تاریخ شمسی تعریف کردم که دیگه نیاز نباشه توی هر صفحه مجموعه ای از کدها رو بکار ببرم تا یه تاریخ شمسی توی صفحه نشون بده .

متغییر اصلی توی کلاس strDate است که تاریخ رو نمایش میده .
حالا میخوام بدونم چجوری میشه خاصیت Text یک Lable رو برابر با متغییر strDate داخل کلاس قرار داد ؟

تشکر

behzadzh
یک شنبه 10 خرداد 1388, 15:56 عصر
سلام دوست من
اگه از سي شارپ استفاده مي کني بايد توي فايل کد صفحه اي که مي خواي از متغيرت استفاده کني ،‌ کلاس مورد نظرت رو Import کني بعدش با نوشتن نام کلاس و قرار دادن يه نقطه بعد اسم متغير مي توني به مقدار اون دسترسي داشته باشي:

test.strDate

يا
Label1.text=test.strDate

علی میرجلیلی
یک شنبه 10 خرداد 1388, 21:19 عصر
دوست عزیز ؛ نه ، نشد
زبانم VB است .
اون کاری رو هم که شما گفتید کردم ، نشد .

میشه بیشتر راهنمایی کنید !؟ ممنون

MyClass: App_Code\PersianCalender.vb (http://barnamenevis.org/forum/attachment.php?attachmentid=31474&d=1243790176)

iman_22a
یک شنبه 10 خرداد 1388, 22:21 عصر
سلام ، نشد برای اینکه شما از Sub استفاده کردین ، بجای Sub از Function ی از جنس String استفاده کن که اون متغیر مورد نظرت رو Return کنه .



Public Function Shamsi() As String
...
Return strdate
End Function

علی میرجلیلی
دوشنبه 11 خرداد 1388, 07:22 صبح
آقا ایمان ؛ این کاری رو که شما گفتید رو هم انجام دادم
جواب نمیده

iman_22a
دوشنبه 11 خرداد 1388, 10:54 صبح
سلام . چرا جواب نمیده ؟ ارور میده ؟! یا اینکه اصلا بهش دسترسی نداری توی کد نویسی ؟

علی میرجلیلی
دوشنبه 11 خرداد 1388, 12:24 عصر
دوست عزیز این کاری که شما گفتید ، انجام دادم ولی نشد .
یعنی همه جا رو قبول میکنه اما متغییر strDate رو توی کلاسهای دیگه نمیاره .

Lable1.Text = String.PersianCalender(strDate) یا Lable1.Text = String.PersianCalender.strDate
رو قبول نمیکنه

iman_22a
دوشنبه 11 خرداد 1388, 12:41 عصر
دوست عزیز این کاری که شما گفتید ، انجام دادم ولی نشد .
یعنی همه جا رو قبول میکنه اما متغییر strDate رو توی کلاسهای دیگه نمیاره .

Lable1.Text = String.PersianCalender(strDate) یا Lable1.Text = String.PersianCalender.strDate
رو قبول نمیکنه

دوست عزیز ، خوب معلومه که نباید قبول کنه . شما مقدار Text از لیبل رو برایر با PersianCalendar.Shamsi قرار بدین (البته Sub رو باید به Func تغییر بدین) این کار رو که انجام بدین تابع خودبخود مقدار strDate رو که از جنس String هست به عنوان text از Label بر میگردونه .
احتیاجی به برگردوندن strDate ندارین . تابع رو صدا کنین ، انگار که strDate رو دارین .

Label1.text = PersianCalendar.Shamsi() کار شما رو راه می اندازه و درست هم هستش .

azad.aminian
دوشنبه 11 خرداد 1388, 14:43 عصر
از این کلاس استفاده کن برای جواب می ده:


Imports System.Globalization
Public Class ConvertDate
Public Function ShamsiToMiladi(ByVal ShamsiDate As String) As String
Dim PDate As New PersianCalendar
Dim y, m, d As Integer
y = Mid(ShamsiDate, 1, 4)
m = Mid(ShamsiDate, 6, 2)
d = Mid(ShamsiDate, 9, 2)
Return Mid(PDate.ToDateTime(y, m, d, 1, 1, 1, 1, 1), 1, 11)
End Function
Public Function MiladiToShamsi(ByVal MiladiDate As String) As String
Dim PDate As New PersianCalendar
Dim miladi As Date = CDate(MiladiDate)
Dim y, m, d As String
y = PDate.GetYear(miladi)
m = PDate.GetMonth(miladi)
d = PDate.GetDayOfMonth(miladi)
Return y & "/" & m & "/" & d
End Function
End Class