PDA

View Full Version : مشکل با تاریخ



majidsoft
یک شنبه 10 آبان 1388, 12:04 عصر
با سلام
من از این کد برای نشان دادن زمان در کریستال استفاده می کنم ولی زمان را بصورت عدد نشان می دهد 1,388.00برای اینکه آن دو صفر و ویرگول را نمایش ندهد چکار باید بکنم
با تشکر

numbervar iMiladiMonth:=month(CurrentDate);
numbervar iMiladiDay:=day(CurrentDate);
numbervar iMiladiYear:=year(CurrentDate);
numbervar shamsiDay;
numbervar shamsiMonth;
numbervar shamsiYear;
numbervar dayCount;
numbervar farvardinDayDiff;
numbervar deyDayDiff;
numberVar array sumDayMiladiMonth :=[0,31,59,90,120,151,181,212,243,273,304,334];
numberVar array sumDayMiladiMonthLeap := [0,31,60,91,121,152,182,213,244,274,305,335];
numberVar farvardinDayDiff:=79;
numbervar miladiYear1:=int(imiladiYear mod 100);
numbervar miladiYear2:=int(imiladiYear mod 4);
numbervar miladiYear3:=int(imiladiYear mod 100);
numbervar miladiYear4:=int(imiladiYear mod 400);
if (((miladiYear1 <> 0 )and (miladiYear2 =0))or((miladiYear3=0)and (miladiYear4=0))) then
dayCount := sumDayMiladiMonthLeap[iMiladiMonth] + iMiladiDay
else
dayCount := sumDayMiladiMonth[iMiladiMonth] + iMiladiDay;

miladiYear1:=int((imiladiYear-1) mod 100);
miladiYear2:=int((imiladiYear-1) mod 4);
miladiYear3:=int((imiladiYear-1) mod 100);
miladiYear4:=int((imiladiYear-1) mod 400);
if (((miladiYear1 <> 0 )and (miladiYear2 =0))or((miladiYear3=0)and (miladiYear4=0))) then
deyDayDiff := 11
else
deyDayDiff := 10;
if (dayCount > farvardinDayDiff) then
(
dayCount := dayCount - farvardinDayDiff;
if (dayCount <= 186) then
(
select int(dayCount mod 31)
case 0:(
shamsiMonth :=int( dayCount / 31);
shamsiDay := 31;
)
default:(
shamsiMonth := int(dayCount / 31) + 1;
shamsiDay :=int(dayCount mod 31);
);
shamsiYear := iMiladiYear - 621;
)
else
(
dayCount := dayCount - 186;
select dayCount mod 30
case 0:(
shamsiMonth := int(dayCount / 30) + 6;
shamsiDay := 30;
)
default:(
shamsiMonth := int(dayCount / 30) + 7;
shamsiDay := int(dayCount mod 30);
);
shamsiYear := iMiladiYear - 621;
)
)
else
(
dayCount := dayCount + deyDayDiff;
select int(dayCount mod 30)
case 0 :(
shamsiMonth := int(dayCount / 30) + 9;
shamsiDay := 30;
)
default:(
shamsiMonth := int(dayCount / 30) + 10;
shamsiDay := int(dayCount mod 30);
);
shamsiYear := iMiladiYear - 622;
);
stringvar exitmy:=totext(shamsiYear)+' / '+totext(shamsiMonth)+' / '+totext(shamsiDay);
exitmy;

mn_zandy63
یک شنبه 10 آبان 1388, 20:21 عصر
خط یکی به آخرت رو به این کد تغییر بده:

stringvar exitmy:=totext(shamsiYear,0,'')+' / '+totext(shamsiMonth,0,'')+' / '+totext(shamsiDay,0,'');

در واقع با این تغییرات بهش میگی که تعداد ارقام اعشار صفر تا باشه و از جداکننده برای هر سه رقم استفاده نکنه.
کافی بود بری روی totext و کلید F1 رو فشار بدی، کامل توضیح میده :چشمک:

موفق باشی