PDA

View Full Version : سوال: جدا کردن اجزا تاریخ( سال -ماه-روز)در vb



bugattis
چهارشنبه 08 مهر 1388, 15:00 عصر
:اشتباه:سلام
میخوام توی vb هنگامی که تاریخ رو نشون میده(توی یه lable یا text ) سال و ماه و روز را با یه اسلش یا ... از هم جدا کنم

alirezash
چهارشنبه 08 مهر 1388, 16:30 عصر
دوست عزیز با دستور

Label1.Caption = Year(DateTime.Now)
Label2.Caption = Month(DateTime.Now)
Label3.Caption = Day(DateTime.Now)
روز و ماه و سال رو جدا جدا می گیری و اگه خواستی بینش هر چی دوست داشتی می زاری

nima_8m
چهارشنبه 08 مهر 1388, 17:18 عصر
اگه منظورت تاریخ شمسی هستش از این ماژول استفاده کن
بعد تو برنامت بنویسtarikhshame(,true)
داخل ماژول توضیح هست

'tarikhshamsi
Function TarikhShamsi(Optional date1 As String, Optional SmallDate1 As Boolean) As String
'================================================= ===
Dim d, p, w, mon, Mm, Ym, u, v, rp, x, i, Ys, Ms, Dm, P1, D1, Ds, DateShamsi
d = Array(20, 19, 20, 20, 21, 21, 22, 22, 22, 22, 21, 21)
p = Array(11, 12, 10, 12, 11, 11, 10, 10, 10, 9, 10, 10)
w = Array("íßÔäÈå", "ÏæÔäÈå", "Óå ÔäÈå", "åÇÑÔäÈå", "äÌÔäÈå", "ÌãÚå", "ÔäÈå")

If SmallDate1 = True Then
mon = Array("01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12")
Else
mon = Array("ÝÑæÑÏíä", "ÇÑÏíÈåÔÊ", "ÎÑÏÇÏ", "ÊíÑ", "ãÑÏÇÏ", "ÔåÑíæÑ", "ãåÑ", "ÂÈÇä", "ÂÐÑ", "Ïí", "Èåãä", "ÇÓÝäÏ")
End If

If date1 = "" Then date1 = Date

Dm = Day(date1)
Mm = Month(date1)
Ym = Year(date1)
u = 0
rp = 0
If (Ym Mod 4) = 0 Then u = 1
If ((Ym Mod 100) = 0 And (Ym Mod 400) <> 0) Then u = 0
Ys = Ym - 622
x = Ys - 22
x = x Mod 33
If ((x Mod 4) = 0 And x <> 32) Then rp = 1
i = Not (rp - 2) + Not (u - 2) * 2
x = 0
If (i = 0 And Mm = 3) Then x = 1
If i = 0 Then i = 3
Ms = (9 + Mm) Mod 13
If Ms < 10 Then Ms = Ms + 1
D1 = d(Mm - 1)
If (i = 1 And Mm > 2) Then D1 = D1 - 1
If (i = 2 And Mm < 3) Then D1 = D1 - 1
P1 = p(Mm - 1)
If (i = 1 And Mm > 2) Then P1 = P1 + 1
If (i = 2 And Mm < 4) Then P1 = P1 + 1
If (Dm > 0 And Dm <= D1) Then
Ds = P1 + Dm + x - 1
x = 1
Else
Ds = Dm - D1
Ms = Ms + 1
If Ms = 13 Then Ms = 1
x = 2
End If
If ((Mm = 3 And x = 2) Or Mm > 3) Then Ys = Ys + 1
If SmallDate1 = True Then
' ÇßÑ ÓÇá Èå ÕæÑÊ åÇÑ ßÇÑÇßÊÑí ãíÎæÇåíÏ ÎØ ÒíÑ ÑÇ ÇÒ ÍÇáÊ ßÇãäÊ ÏÑ ÂæÑíÏ
TarikhShamsi = Trim(Str(Ys)) + "/" + Trim(mon(Ms - 1)) + "/" + Trim(Str(Ds))
' TarikhShamsi = Mid(Trim(Str(Ys)), 3, 2) + "/" + Trim(mon(Ms - 1)) + "/" + Trim(Str(Ds))
Else
TarikhShamsi = w(Weekday(Date) - 1) + " " + Str(Ds) + " " + mon(Ms - 1) + " " + Str(Ys)
End If
End Function
Function MthGetdateMilady(YY_MM_DD As String) As String
'<---------ÊÈÏíá ÊÇÑíÎ ÔãÓí Èå ãíáÇÏí----------
'--- åÔÊ ßÇÑÇßÊÑ æ Èå ÝÑãÊ (ÑÑ/ã ã/Ó Ó)--- æÑæÏí--------
'--- Ïå ßÇÑÇßÊÑ Èå ÝÑãÊ (ÑÑ/ã ã/Ó Ó Ó Ó)---- ÎÑæÌí ----
Dim i, sh_yy As Integer, sh_mm As Integer, sh_dd As Integer
Dim md_yy As Integer, md_dd As Integer, md_mm As Integer, t_date As Single
Dim md_yy1 As String, md_dd1 As String, md_mm1 As String
Dim md_mon(12) As Integer, sh_mon(12) As Integer, md_date As String, t_mm As Integer, t_day As Single
If Len(YY_MM_DD) <> 8 Then
MsgBox "ÎØÇ - - - ÊÇÑíÎ ÑÇ ÈÕæÑÊ ÑæÒ/ãÇå/ÓÇá æÇÑÏ äãÇííÏ"
Exit Function
End If
YY_MM_DD = "13" + Mid(YY_MM_DD, 1, 8)
sh_yy = Val(Mid(YY_MM_DD, 1, 4))
sh_mm = Val(Mid(YY_MM_DD, 6, 2))
sh_dd = Val(Mid(YY_MM_DD, 9, 2))
If sh_yy < 1300 Then
MsgBox ("ÎØÇ - - - ÓÇá ÑÇ ÔãÓí æÇÑÏ äãÇííÏ")
End If
If sh_mm < 1 Or sh_mm > 12 Then
MsgBox ("ÎØÇ - - - ãÇå ÑÇ ÏÑÓÊ æÇÑÏ äãÇííÏ")
End If
md_mon(1) = 31
md_mon(2) = 28
md_mon(3) = 31
md_mon(4) = 30
md_mon(5) = 31
md_mon(6) = 30
md_mon(7) = 31
md_mon(8) = 31
md_mon(9) = 30
md_mon(10) = 31
md_mon(11) = 30
md_mon(12) = 31
sh_mon(1) = 31
sh_mon(2) = 31
sh_mon(3) = 31
sh_mon(4) = 31
sh_mon(5) = 31
sh_mon(6) = 31
sh_mon(7) = 30
sh_mon(8) = 30
sh_mon(9) = 30
sh_mon(10) = 30
sh_mon(11) = 30
sh_mon(12) = 29
t_mm = 0
md_mm = 1
t_date = (226898 - 154) / 365
md_yy = Int(t_date) + sh_yy
If (sh_yy Mod 4) = 3 Then
sh_mon(12) = sh_mon(12) + 1
md_mon(2) = md_mon(2) + 1
End If
If sh_dd > sh_mon(sh_mm) Or sh_dd < 1 Then
MsgBox ("xxxxxxxxx1")
End If
For i = 1 To sh_mm - 1
t_mm = t_mm + sh_mon(i)
Next
t_day = ((t_date - Int(t_date)) * 365) + t_mm + sh_dd
i = 1
Do While t_day > md_mon(i)
t_day = t_day - md_mon(i)
md_mm = md_mm + 1
i = i + 1
If i = 13 Then
If Int(t_day) <> 0 Then
i = 1
md_mm = 1
md_yy = md_yy + 1
If md_mon(2) = 29 Then
md_mon(2) = 28
End If
If (md_yy Mod 4) = 0 Then
md_mon(2) = 29
End If
Else
md_mm = 12
t_day = md_mon(12)
Exit Do
End If
End If
Loop
If Int(t_day) = 0 Then
md_mm = md_mm - 1
t_day = md_mon(md_mm)
End If
md_dd = t_day
md_dd1 = Str(md_dd)
md_mm1 = Str(md_mm)
md_yy1 = Str(md_yy)
If Val(md_dd1) < 10 Then
md_dd1 = "0" + Trim(md_dd1)
End If
If Val(md_mm1) < 10 Then
md_mm1 = "0" + Trim(md_mm1)
End If

MthGetdateMilady = Trim(md_yy1) + "/" + Trim(md_mm1) + "/" + Trim(md_dd1)
End Function

bugattis
پنج شنبه 09 مهر 1388, 09:26 صبح
منظور من این بود که وقتی که توی یه text کاربر داره تاریخ رو وارد می کنه اسلش ها داخل textباشند
یا بطور خودکار اسلش ها بین اعداد(سال-ماه-روز)بیفتن(می خوام مقدار text را داخل بانک وارد کنم)
می خوام داخل یک text یا یک lable تاریخ را ذخیره کنم:چشمک:

mostafa_bahar
پنج شنبه 09 مهر 1388, 10:08 صبح
از maskedit استفاده کن یا داخل keyup تکت کار کن با برنامه نویسی کار سختی نی

bugattis
پنج شنبه 09 مهر 1388, 14:12 عصر
یه کم بیشتر توضیح بده نگرفتم (روان تر بیان کنید):تشویق:

sina26
پنج شنبه 09 مهر 1388, 14:24 عصر
:اشتباه:سلام
میخوام توی vb هنگامی که تاریخ رو نشون میده(توی یه lable یا text ) سال و ماه و روز را با یه اسلش یا ... از هم جدا کنم
سلام
امیدوارم این فایل مشکلت رو حل کنه

bugattis
پنج شنبه 09 مهر 1388, 15:51 عصر
ایول سینا خیلی خوب بود(زورسپاس):تشویق: