PDA

View Full Version : تبديل تاريخ شمسي به عدد



danesh1351
پنج شنبه 02 اردیبهشت 1389, 18:29 عصر
با سلام خدمت دوستان
اين تابع تاريخ شمسي را به عدد تبديل ميكند


Function DateToDigit(PDate: String): Integer ;
Var YY,MM,DD,RetVal :Integer ;
begin
IF (Copy(PDate,5,1)<> '/')or (Copy(PDate,8,1)<> '/') Then
DateToDigit := 0 ;
YY := StrToInt(Copy(PDate,1,4)); // سال 4 رقمي باشد
MM := StrToInt(Copy(PDate,6,2)); // ماه 2 رقم
DD := StrToInt(Copy(PDate,9,2)) ; // روز 2رقم
RetVal := (YY-1) * 365 ;
RetVal := RetVal +(YY Div 4); // تعداد سالهاي كبيسه
IF (MM < 7) Then
RetVal := RetVal + ((MM-1)*31)
Else
RetVal := RetVal + 186 + ((MM-7)*30);
RetVal := RetVal + DD ;
DateToDigit := RetVal ;
end;

مثالي از كاربرد تابع
محاسبه اختلاف تعداد روزهاي دو تاريخ شمسي



Function DefDate(D1, D2: String): Integer;
Begin
DefDate := DateToDigit(D2) - DateToDigit(D1);
End;