मैं स्पंदन में दो तिथियों के बीच दिन प्राप्त करना चाहता हूँ। निम्नलिखित नुसार:

List<DateTime> getDays({DateTime start, DateTime end}) {
    // TODO ...
}

List<DateTime> days = getDays(
    start: DateTime.parse('2021-10-25 12:00:00'),
    end: DateTime.parse('2021-10-28 12:00:00'),
);

लौटाई गई सूची में डेटा इस प्रकार है:

[
 DateTime(), // 2021-10-25 12:00:00
 DateTime(), // 2021-10-26 12:00:00
 DateTime(), // 2021-10-27 12:00:00
]

getDays विधि को कैसे कार्यान्वित करें। धन्यवाद!!!

0
Liu Silong 27 अक्टूबर 2021, 17:57

1 उत्तर

सबसे बढ़िया उत्तर

आपको इसे लागू करने की आवश्यकता नहीं है। ऐसा करने वाला पहले से ही एक है।

void main() {

  List<DateTime> getDays({
    required DateTime start,
    required DateTime end
  }) {
    final days = end.difference(start).inDays;

    return [
      for (int i = 0; i < days; i++) 
        start.add(Duration(days: i))
      ];
  }

  List<DateTime> days = getDays(
    start: DateTime.parse('2021-10-25 12:00:00'),
    end: DateTime.parse('2021-10-28 12:00:00'),
  );

  print(days);

  // [
  //  2021-10-25 12:00:00.000, 
  //  2021-10-26 12:00:00.000, 
  //  2021-10-27 12:00:00.000
  // ]
}
2
pedro pimont 27 अक्टूबर 2021, 18:18
1
ओपी चाहता है कि एक List<DateTime> (int नहीं) लौटाया जाए
 – 
pskink
27 अक्टूबर 2021, 18:09
Oooooooh मैं देख रहा हूँ, मुझे लगा कि यह एक त्रुटि थी... मैं इसे संपादित करूँगा, धन्यवाद
 – 
pedro pimont
27 अक्टूबर 2021, 18:12
वहां। धन्यवाद
 – 
pedro pimont
27 अक्टूबर 2021, 18:19
ध्यान दें कि यह सभी DST परिवर्तनों में अनपेक्षित परिणाम दे सकता है। अगर आप इससे बचना चाहते हैं तो यूटीसी का इस्तेमाल करें।
 – 
jamesdlin
27 अक्टूबर 2021, 19:18