ما همین جوریش هم باید بشینیم تا ببینیم ماه رو دیدن یا نه تا روزه بگیریم یا نه،
هیچ تاریخ قمری ای دقیق نیست. تنها باید گذشته اون رو در دیتابیس گشت.
در خصوص فارسی شدن، این توابع رو اضافه کنید:

function Date_SolarMonthName(Month: integer): string;
begin
case Month of
1: Result := 'فروردین';
2: Result := 'اردیبهشت';
3: Result := 'خرداد';
4: Result := 'تیر';
5: Result := 'مرداد';
6: Result := 'شهریور';
7: Result := 'مهر';
8: Result := 'آبان';
9: Result := 'آذر';
10: Result := 'دی';
11: Result := 'بهمن';
12: Result := 'اسفند';
end;
end;

function Date_SolarFullName(Dt: string): string;
var
YY, MM, DD: string;
begin
DD := Copy(Dt, 9, 2);
MM := Copy(Dt, 6, 2);
YY := Copy(Dt, 1, 4);

Result := DD + ' ' + Date_SolarMonthName(StrToInt(MM)) + ' ' + YY;
end;



مهم بیس داستانه، بقیش به راحتی توسعه پذیره.