PDA

View Full Version : برگرداندن تاریخ سیستم بصورت 1391/05/08



firoozi90
دوشنبه 21 اسفند 1391, 14:37 عصر
سلام دوستان من با استفاده از تابع datetime تاریخ سیستم را بر می گردونم اما صفرهای قبل از روز و ماه های تک رقمی را نمی زاره.
مثلا تاریخی که بم نشون میده بصورت 1391/8/5 هستش و من میخوام 1391/08/05 ka,k fni
چیکار کنم که این صفراش هم نشون بده؟

Nima_kyan
دوشنبه 21 اسفند 1391, 14:49 عصر
سلام.
خیلی راحت میتونید این کار رو انجام بدید. فقط کافیه سال و ماه و روز رو از هم جدا کنید و با یه شرط ساده چک کنید که در صورت تک رقمی بودن ماه و یا روز یه صفر به قبلش اضافه کنه.
موفق باشید

mehrdad1991h
دوشنبه 21 اسفند 1391, 14:59 عصر
از dateTimePicker استفاده میکنی دیگه ؟
خوب راحت ترین کار اینه که کاستوم فرمت را فعال کنی و فرمت را هر جوری که دلت میخواد ست کنی که همونجوری هم بهت نشون بدهد
برا اینکه بفهمی از چه کلماتی استفاده کنی هم به لینک زیر مراجعه کن اخرش فرمت ها را نوشته با توضیحات لازم
http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

مثلا برای روز
d از 1 شروع میکنه تا 31
dd از 01 شروع میکنه تا 31
ddd مخفف نام روز
dddd نام روز به صورت کامل
میتونی استفاده کنی
و.....

firoozi90
دوشنبه 21 اسفند 1391, 15:09 عصر
از dateTimePicker استفاده میکنی دیگه ؟
خوب راحت ترین کار اینه که کاستوم فرمت را فعال کنی و فرمت را هر جوری که دلت میخواد ست کنی که همونجوری هم بهت نشون بدهد
برا اینکه بفهمی از چه کلماتی استفاده کنی هم به لینک زیر مراجعه کن اخرش فرمت ها را نوشته با توضیحات لازم
http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

مثلا برای روز
d از 1 شروع میکنه تا 31
dd از 01 شروع میکنه تا 31
ddd مخفف نام روز
dddd نام روز به صورت کامل
میتونی استفاده کنی
و.....

ممنون از توجهت عزیز
نه فدات از dateTimePicker استفاده نمی کنم.اونو از تابع datetime میگیرم و مستقیم میریزم توی تکست باکس

mehrdad1991h
دوشنبه 21 اسفند 1391, 15:45 عصر
ممنون از توجهت عزیز
نه فدات از dateTimePicker استفاده نمی کنم.اونو از تابع datetime میگیرم و مستقیم میریزم توی تکست باکس
اهان خوب دیگه به بزرگی خودتون بخشید اشتباهی دیدم
خوب قبل از اینکه بریزی تو تکست باکس همونجوری که گفته شده یه ارایه تعریف کن و قسمت های سال و ماه و روز را بریز توش (اسپیلیت میکنی / را)
بعد ارایه به دست اومده را 3 قسمت را چک کن هر کودوم زیر 10 بود یه صفر (البته رشته باید باشه چون اگه به عددی 0 بزاری قبلش 0 میپره) به قبلش اضافه میکنی (البته از PadLeft و PadRight هم میتونی استفاده کنی که اگه فقط 1 کاراکتری بود رشته مورد نظرت بیاد و یه حرف به قبل یا بعد رشته اضافه کنه)
بعد هم دیگه 3 قسمت درست شده را بچسبون کنار هم و به کاربر نشون بده !!!
توضیح الکی دادم فک کنم :)

veniz2008
دوشنبه 21 اسفند 1391, 16:17 عصر
سلام.
نیازی به آرایه نیست. سه تا متغیر رشته ای mah و rooz و sal تعریف کنید و :

DateTime mytoday = DateTime.Now;
PersianCalendar pc = new PersianCalendar();
sal = pc.GetYear(mytoday).ToString();
mah = pc.GetMonth(mytoday).ToString();
rooz = pc.GetDayOfMonth(mytoday).ToString();
if (mah.Length == 1)
mah = "0" + mah;
if (rooz.Length == 1)
rooz = "0" + rooz;
currentday = sal + "/" + mah + "/" + rooz;
موفق باشید.

firoozi90
دوشنبه 21 اسفند 1391, 16:59 عصر
اهان خوب دیگه به بزرگی خودتون بخشید اشتباهی دیدم
خوب قبل از اینکه بریزی تو تکست باکس همونجوری که گفته شده یه ارایه تعریف کن و قسمت های سال و ماه و روز را بریز توش (اسپیلیت میکنی / را)
بعد ارایه به دست اومده را 3 قسمت را چک کن هر کودوم زیر 10 بود یه صفر (البته رشته باید باشه چون اگه به عددی 0 بزاری قبلش 0 میپره) به قبلش اضافه میکنی (البته از PadLeft و PadRight هم میتونی استفاده کنی که اگه فقط 1 کاراکتری بود رشته مورد نظرت بیاد و یه حرف به قبل یا بعد رشته اضافه کنه)
بعد هم دیگه 3 قسمت درست شده را بچسبون کنار هم و به کاربر نشون بده !!!
توضیح الکی دادم فک کنم :)

فدات بشم شما باید ببخشی.شرمنده ام نکن
ممنون از توضیحات کاملت.

Ghaem66
دوشنبه 21 اسفند 1391, 19:09 عصر
نیازی به این همه کد نویسی نداره. کافیه داخل متد ToStirng() یه "D2" بنویسید


pc.GetMonth(dt).ToString("D2")

به همین راحتی :چشمک:

Mahmoud Zaad
دوشنبه 21 اسفند 1391, 19:14 عصر
حتی به جای D2 دو تا صفر هم می شه نوشت:
pc.GetMonth(dt).ToString("00")

gwbasic
دوشنبه 21 اسفند 1391, 19:23 عصر
با کمی تغییر می تونید از فرمت بندی کردن استفاده کنید

DateTime today = DateTime.Today;
PersianCalendar pc = new PersianCalendar();
string date = pc.GetYear(today).ToString("0000") + pc.GetMonth(today).ToString("/00") + pc.GetDayOfMonth(today).ToString("/00");
MessageBox.Show(date);


البته قرار نیست چرخ رو دوباره اختراع کنیم راه بهتر استفاده از ابزارهای ساخته شده است. یکی از بهترین آنها Farsi Library‌ هست که می تونید ازش استفاده کنید و فرمت های مختلفی رو به شما می ده

gwbasic
دوشنبه 21 اسفند 1391, 19:25 عصر
جالبه که همزمان با من بقیه دوستان به فرمت بندی کردن اشاره کردن!

terminator
یک شنبه 11 فروردین 1392, 17:24 عصر
Public Function ToShamsi(ByVal _MiladiDate As Date) As String
Dim pc = New PersianCalendar()
Dim tmp As String
tmp = pc.GetYear(_MiladiDate).ToString()
tmp = tmp & "/"
tmp = tmp & String.Format("{0:00}", pc.GetMonth(_MiladiDate))
tmp = tmp & "/"
tmp = tmp & String.Format("{0:00}", pc.GetDayOfMonth(_MiladiDate))
Return tmp
End Function

erfan_urchin
یک شنبه 11 فروردین 1392, 17:51 عصر
Public Function ToShamsi(ByVal _MiladiDate As Date) As String
Dim pc = New PersianCalendar()
Dim tmp As String
tmp = pc.GetYear(_MiladiDate).ToString()
tmp = tmp & "/"
tmp = tmp & String.Format("{0:00}", pc.GetMonth(_MiladiDate))
tmp = tmp & "/"
tmp = tmp & String.Format("{0:00}", pc.GetDayOfMonth(_MiladiDate))
Return tmp
End Function

اگه دقت کرده باشی اینجا تاپیک C# هستش نه VB !!!!