ورود

View Full Version : سوال: فرمت تاریخ



saadi2
چهارشنبه 01 مهر 1388, 21:45 عصر
با چه کدی میشه "1/2/1388" رو به "01/02/1388" تبدیل کرد؟

ali.hojjati
چهارشنبه 01 مهر 1388, 22:01 عصر
برای این کار باید کدنویسی کنید و قسمت های سال - ماه و روز رو از هم جدا کنید. سپس اگه تعداد رقم های ماه و روز کمتر از 2 بود یک صفر قبل از اون قرار بده. شاید روش دیگری هم باشه ولی من خودم از این روش استفاده می کنم.

Hossein Bazyan
چهارشنبه 01 مهر 1388, 22:02 عصر
با چه کدی میشه "1/2/1388" رو به "01/02/1388" تبدیل کرد؟
سلام



Dim datDate as Date= Format ("yyyy/MM/dd",Now())

saadi2
چهارشنبه 01 مهر 1388, 22:37 عصر
از پاسختون ممنونم. به یه چیز عجیب برخوردم.

دیروز که تاریخ 31/6/1388 بود در برنامه ای که نوشته بودم و از یه دیتاتایم پیکر استفاده میکرد با انتخاب تاریخ دیروز یعنی 31 کم خطا میداد .
نفهمیدم دلیلش چیه الانم که از کد آقای Hossein Bazyan (http://barnamenevis.org/forum/member.php?u=4029)

استفاده کردم در همهی تاریخها درست جواب میده جز تاریخ "1388/6/31" خواهش میکنم این کدو امتحان کنید ببینید با همه ی تاریخها جواب میده ولی........


Dim datDate As Date = Format("yyyy/mm/dd", "1388/6/31")
MessageBox.Show(datDate)

شاید به این خاطره که 6 ماهه اول سال تموم شده و روز های ماه دیگه 30 روزه

کس دیگهای به این مشکل بر نخورد؟

sari-1369
چهارشنبه 01 مهر 1388, 22:46 عصر
از این تابع که نوشتم استفاده کن ، تاریخ رو به صورت string بهش بده و به صورت String کامل شده تحویل بگیر .

Public Function EslahTarikh(ByVal Tarikh As String) As String
Dim TarikhArry = Split(Tarikh, "/")
If TarikhArry(1).ToString.Length < 2 Then
TarikhArry(1) = "0" & TarikhArry(1)
End If
If TarikhArry(2).ToString.Length < 2 Then
TarikhArry(2) = "0" & TarikhArry(2)
End If
Return TarikhArry(0) & "/" & TarikhArry(1) & "/" & TarikhArry(2)
End Function

saadi2
چهارشنبه 01 مهر 1388, 23:52 عصر
از این تابع که نوشتم استفاده کن ، تاریخ رو به صورت string بهش بده و به صورت String کامل شده تحویل بگیر .

Public Function EslahTarikh(ByVal Tarikh As String) As String
Dim TarikhArry = Split(Tarikh, "/")
If TarikhArry(1).ToString.Length < 2 Then
TarikhArry(1) = "0" & TarikhArry(1)
End If
If TarikhArry(2).ToString.Length < 2 Then
TarikhArry(2) = "0" & TarikhArry(2)
End If
Return TarikhArry(0) & "/" & TarikhArry(1) & "/" & TarikhArry(2)
End Function





فوق العاده بود ممنون از شما وهمه
همونی شد که دنبالش بودم

Hossein Bazyan
پنج شنبه 02 مهر 1388, 10:25 صبح
از پاسختون ممنونم. به یه چیز عجیب برخوردم.

دیروز که تاریخ 31/6/1388 بود در برنامه ای که نوشته بودم و از یه دیتاتایم پیکر استفاده میکرد با انتخاب تاریخ دیروز یعنی 31 کم خطا میداد .
نفهمیدم دلیلش چیه الانم که از کد آقای Hossein Bazyan (http://barnamenevis.org/forum/member.php?u=4029)

استفاده کردم در همهی تاریخها درست جواب میده جز تاریخ "1388/6/31" خواهش میکنم این کدو امتحان کنید ببینید با همه ی تاریخها جواب میده ولی........


Dim datDate AsDate = Format("yyyy/mm/dd", "1388/6/31")
MessageBox.Show(datDate)

شاید به این خاطره که 6 ماهه اول سال تموم شده و روز های ماه دیگه 30 روزه

کس دیگهای به این مشکل بر نخورد؟


سلام
درسته اما مشکل اینه که این تابع تاریخ میلادی رو میشناسه نه تاریخ شمسی ! برج 6 مسلادی هم سی روزه است نه سی و یک روزه !