كيف استخرج من datetimepicker
#1
السلام عليكم
كيف استطيع ان استخرج السنة وحدها من datetimepicker وكذلك اليوم والشهر لاستعمالهم في حسابات اخرى وشكراااا
الرد
#2
و عليكم السلام و رحمة الله و بركاته
إستخدم DeCodeDate/EnCodeDate .

PHP كود :
procedure TForm1.Button1Click(Sender: TObject);
Var
  
Date:TDate;
  
J,M,A:Word;
begin
Try
 
Date:=StrToDate(MaskEdit1.Text);
 
DeCodeDate(Date,A,M,J);
 
Edit1.Text:=IntToStr(J);
 
Edit2.Text:=IntToStr(M);
 
Edit3.Text:=IntToStr(A);
Except
On E
:Exception Do
 
ShowMessage(E.Message);
 
End;
end; 

بالتوفيق ,,
الرد
#3
بارك الله فك
لكن لماذا استعملت maskedit1.text فانا استعمل datetimepicker لكن .date لم تنجح
الرد
#4
لم تنجح ؟؟ ممكن تضع الطريقة التي إعتمدتها .
الرد
#5
اخي الكريم ساشرح لك ما اود القيام به
لدي datetimepicker1 حيث اختار فيه تاريخ ميلاد شخص معين ولدي label3 اضع فيه عمر الشخص وطبعا لحساب عمر الشخص تعمل مقارنة بين سنة ميلاد الشخص المووجودة في datetimepicker والتاريخ الموجود في النظام.وتاريخ النظام موجود في label1 .

جربت هذه الطريقة لكن عند ادخال اي تاريخ تظهر الرسالة الاخيرة فقط.
كود :
var date,an,anNais:string; age:integer; begin if not(DateTimePicker1.Color=clred) then try an:=copy(datetostr(now),7,4); anNais:=copy(datetimepicker1.Format,7,4) ; age:=strtoint(an)-strtoint(anNais); label3.Caption:=inttostr(age); except begin ShowMessage('Date de naissance incorrecte'); DateTimePicker1.SetFocus end; end;
الرد
#6
1- يعني شوف سؤالك الأول :
كيف استطيع ان استخرج السنة وحدها من datetimepicker وكذلك اليوم والشهر لاستعمالهم في حسابات اخرى وشكراااا .
- جاوبتك على قدره كان يكفي أن تبدل MaskEdit1.Text بـ DateTimePicker1.Date
2- سؤالك التاني :
تريد حساب عمر الشخص إنطلاقا من تحديد تاريخ ميلاده في DateTimePicker .

PHP كود :
procedure TForm1.Button1Click(Sender: TObject);
Var
  
bDate:TDate;
  
bJ,bM,bA:Word;
  
J,M,A:Word;
begin
Try
 
bDate:=DateTimePicker1.Date;
 
DeCodeDate(bDate,bA,bM,bJ);
 
DeCodeDate(Date,A,M,J);
 
ShowMessageFmt('%d Année Et %d Mois Et %d Jour',[A-bA,M-bM,J-bJ]);
Except
On E
:Exception Do
 
ShowMessage(E.Message);
 
End;
end; 

هذا مثال عام يعني لم أظع الحالات الإستثنائية فقط مجرد فكرة و الباقي عليك .
بالتوفيق ,,
الرد
#7
شكرا جزيلا على مجهودك اخي الكريم.
الرد
#8
بالطبع نجحت هده المرة .. مشكور .
بالتوفيق ,,
الرد
#9
tf6m كتب :بالطبع نجحت هده المرة .. مشكور .
بالتوفيق ,,


أظن أن هناك فيه خطأ في الكود
عند حساب تكون هناك دائما سنة زائدة
مثلا تاريخ ميلادي 17/09/1978
يعني عمري يوم 16/03/2012 هو 33 سنة و5 أشهر و29 يوم
أما الكود يعطينا 34 سنة و6 أشهر و1يوم ....
مع احتراماتي
الرد
#10
السلام عليكم
جرب API:
PHP كود :
function GetDatePart(dtp: TDateTimePicker; DatePart: string): string;
var
  
len: Integer;
begin
  len 
:= Length(DatePart)+1;
  
dtp.Format := DatePart;
  
SetLength(Result, len);
  
GetWindowText(dtp.Handle, @Result[1], len);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage
(GetDatePart(DateTimePicker1, 'yyyy')); 
بالتوفيق.
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم