سلام دوستان من با استفاده از تابع datetime تاریخ سیستم را بر می گردونم اما صفرهای قبل از روز و ماه های تک رقمی را نمی زاره.
مثلا تاریخی که بم نشون میده بصورت 1391/8/5 هستش و من میخوام 1391/08/05 ka,k fni
چیکار کنم که این صفراش هم نشون بده؟
سلام دوستان من با استفاده از تابع datetime تاریخ سیستم را بر می گردونم اما صفرهای قبل از روز و ماه های تک رقمی را نمی زاره.
مثلا تاریخی که بم نشون میده بصورت 1391/8/5 هستش و من میخوام 1391/08/05 ka,k fni
چیکار کنم که این صفراش هم نشون بده؟
سلام.
خیلی راحت میتونید این کار رو انجام بدید. فقط کافیه سال و ماه و روز رو از هم جدا کنید و با یه شرط ساده چک کنید که در صورت تک رقمی بودن ماه و یا روز یه صفر به قبلش اضافه کنه.
موفق باشید
از dateTimePicker استفاده میکنی دیگه ؟
خوب راحت ترین کار اینه که کاستوم فرمت را فعال کنی و فرمت را هر جوری که دلت میخواد ست کنی که همونجوری هم بهت نشون بدهد
برا اینکه بفهمی از چه کلماتی استفاده کنی هم به لینک زیر مراجعه کن اخرش فرمت ها را نوشته با توضیحات لازم
http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx
مثلا برای روز
d از 1 شروع میکنه تا 31
dd از 01 شروع میکنه تا 31
ddd مخفف نام روز
dddd نام روز به صورت کامل
میتونی استفاده کنی
و.....
اهان خوب دیگه به بزرگی خودتون بخشید اشتباهی دیدم
خوب قبل از اینکه بریزی تو تکست باکس همونجوری که گفته شده یه ارایه تعریف کن و قسمت های سال و ماه و روز را بریز توش (اسپیلیت میکنی / را)
بعد ارایه به دست اومده را 3 قسمت را چک کن هر کودوم زیر 10 بود یه صفر (البته رشته باید باشه چون اگه به عددی 0 بزاری قبلش 0 میپره) به قبلش اضافه میکنی (البته از PadLeft و PadRight هم میتونی استفاده کنی که اگه فقط 1 کاراکتری بود رشته مورد نظرت بیاد و یه حرف به قبل یا بعد رشته اضافه کنه)
بعد هم دیگه 3 قسمت درست شده را بچسبون کنار هم و به کاربر نشون بده !!!
توضیح الکی دادم فک کنم :)
سلام.
نیازی به آرایه نیست. سه تا متغیر رشته ای 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;
موفق باشید.
نیازی به این همه کد نویسی نداره. کافیه داخل متد ToStirng() یه "D2" بنویسید
pc.GetMonth(dt).ToString("D2")
به همین راحتی
حتی به جای D2 دو تا صفر هم می شه نوشت:
pc.GetMonth(dt).ToString("00")
با کمی تغییر می تونید از فرمت بندی کردن استفاده کنید
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 هست که می تونید ازش استفاده کنید و فرمت های مختلفی رو به شما می ده
جالبه که همزمان با من بقیه دوستان به فرمت بندی کردن اشاره کردن!
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