PDA

View Full Version : سوال: کمپوننت FarsiCalendar



MY DEAR DELPHI
چهارشنبه 03 مهر 1387, 08:21 صبح
سلام
من از کمپوننت FarsiCalendar برای تاریخ شمسی استفاده می کنم .کد اینو میخواستم که ایام هفته رو برام برگردونه

Touska
چهارشنبه 03 مهر 1387, 09:34 صبح
منظورتون رو از Farsi Calendar نگرفتم ولی اگر از XCalendar خودمون که در سایت هست. که OPen SOurce هست. استفاده نمایید.

که امکانات زیادی برای مار با هفته داره برای مثال :



PersianCalendar1.WeekOfTheMonth()
PersianCalendar1.WeekStartDay


راستی Demo های کاملی هم بهمراهش توزیع شده، موفق باشید :)

اصغر (پآچ)
چهارشنبه 03 مهر 1387, 17:28 عصر
سلام دوست من

خود دلفی می تونه اسم روز رو از سیستم بگیره و برگردونه کدشم اینه:
FormatDateTime('dddd',Now());

موفق و موید باشی

مائده 100
یک شنبه 05 آبان 1387, 11:41 صبح
کامپوننت ندارم ولی یه سری کد دارم که کار می کنه


function date_convert(vagt:tdatetime):string;
var
w:array[1..7] of string;
mon:array[1..12]of string;
d:array[1..12] of byte;
p:array[1..12] of byte;
dm,ym,mm,u,rp,ys,x,i,ms,ds:word;
d1,p1:byte;
present:tdatetime;
year,month,day:word;
begin
present:=vagt;
decodedate(present,year,month,day);
dm:=day;
mm:=month;
ym:=year;
w[1]:='شنبه';
w[2]:='یکشنبه';
w[3]:='دوشنبه';
w[4]:='سه شنبه';
w[5]:='چهارشنبه';
w[6]:='پنج شنبه';
w[7]:='جمعه';
mon[1]:='فروردین';
mon[2]:='اردیبهشت';
mon[3]:='خرداد';
mon[4]:='تیر';
mon[5]:='مرداد';
mon[6]:='شهریور';
mon[7]:='مهر';
mon[8]:='ابان';
mon[9]:='آذر';
mon[10]:='دی';
mon[11]:='بهمن';
mon[12]:='اسفند';
d[1]:=20;
d[2]:=19;
d[3]:=20;
d[4]:=20;
d[5]:=21;
d[7]:=22;
d[8]:=22;
d[9]:=22;
d[10]:=22;
d[11]:=21;
d[12]:=21;
p[1]:=11;
p[2]:=12;
p[3]:=10;
p[4]:=12;
p[5]:=11;
p[6]:=11;
p[7]:=10;
p[8]:=10;
p[9]:=10;
p[10]:=9;
p[11]:=10;
p[12]:=10;
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];
if ((i=1) and (mm>2)) then d1:=d1-1;
if ((i=2)and(mm<3)) then d1:=d1-1;
p1:=p[mm];
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
begin
ds:=p1+dm+x-1;
x:=1;
end
else
begin
ds:=dm-d1;
ms:=ms+1;
if ms=13 then ms:=1;
x:=2;
end;
if (((mm=3) and (x=2)) or (mm>3)) then ys:=ys+1;
date_convert:=inttostr(ds)+' '+mon[ms]+' '+inttostr(ys);
form4.sal.text:=inttostr(ys);
form4.mah.text:=inttostr(ms);
form4.rooz.text:=inttostr(ds);