اذهب إلى المحتوى

السؤال

نشر

تحيه طيبه للجميع

لدي استفسار لو تكرمتم

كيف ممكن نعمل مقارنة قيم مختلفة في widget flutter

ك مثال التالي:

snapshot.data[index]['LastDate'] >= DateFormat('dd-MM-yyy').format(DateTime.now())

حاولت اعمل كذا بس احصل على الخطاء التالي:

Class 'String' has no instance method '>='.
Receiver: "23-10-2022"
Tried calling: >=("20-09-2022")

كيف يمكن فعل ذلك؟

Recommended Posts

  • 1
نشر

يمكنك إستعمال الدوال isAfter, isBefore,  isAtSameMomentAs المرتبطة بالنوع DateTime لمقارنة الوقت و ترجع كل من هذا الدوال true أو false وكما يلي

	
snapshot.data[index]['LastDate'].isAfter(DateFormat('dd-MM-yyy').format(DateTime.now()))

snapshot.data[index]['LastDate'].isBefore(DateFormat('dd-MM-yyy').format(DateTime.now()))

snapshot.data[index]['LastDate'].isAtSameMomentAs(DateFormat('dd-MM-yyy').format(DateTime.now()))

//compareTo كما يمكنك إستخدام

// لكن هذه الدالة ترجع لك 1 أو 0 أو -1 بنفس الدلالة السابقة

snapshot.data[index]['LastDate'].compareTo(DateFormat('dd-MM-yyy').format(DateTime.now()))

// DateTime ‌لاحظ أننا نقارن النوع

//String إذا الوقت لديك من النوع
//كما يلي DateTime يمكنك تحويله الى

dt= DateTime.parse('2020-01-02T07:12:50+07:00') // مثال

// ثم تجري المقارنة كما سبق

الحل المطروح هنا يحل الإشكالية الموجودة في المثال في سؤالك أي المقارنة بين قيم الوقت كما يفهم من الكود الذي تطرحه. إذا كنت تريد مقارنة قيم أخرى فلا بد من تحديد نوع هذه القيم لتحديد طريق المقارنة ذات العلاقة.

  • 0
نشر
بتاريخ منذ ساعة مضت قال علي محسن:

يمكنك إستعمال الدوال isAfter, isBefore,  isAtSameMomentAs المرتبطة بالنوع DateTime لمقارنة الوقت و ترجع كل من هذا الدوال true أو false وكما يلي


	
snapshot.data[index]['LastDate'].isAfter(DateFormat('dd-MM-yyy').format(DateTime.now()))

snapshot.data[index]['LastDate'].isBefore(DateFormat('dd-MM-yyy').format(DateTime.now()))

snapshot.data[index]['LastDate'].isAtSameMomentAs(DateFormat('dd-MM-yyy').format(DateTime.now()))

//compareTo كما يمكنك إستخدام

// لكن هذه الدالة ترجع لك 1 أو 0 أو -1 بنفس الدلالة السابقة

snapshot.data[index]['LastDate'].compareTo(DateFormat('dd-MM-yyy').format(DateTime.now()))

// DateTime ‌لاحظ أننا نقارن النوع

//String إذا الوقت لديك من النوع
//كما يلي DateTime يمكنك تحويله الى

dt= DateTime.parse('2020-01-02T07:12:50+07:00') // مثال

// ثم تجري المقارنة كما سبق

الحل المطروح هنا يحل الإشكالية الموجودة في المثال في سؤالك أي المقارنة بين قيم الوقت كما يفهم من الكود الذي تطرحه. إذا كنت تريد مقارنة قيم أخرى فلا بد من تحديد نوع هذه القيم لتحديد طريق المقارنة ذات العلاقة.

جزاك الله الف خير اخي الكريم

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...