我正在嘗試創建一個用于構建與約會相關的應用程式的時間段串列。例如,從上午 8 點到晚上 10 點的構建時間段,每個間隔之間有 30 分鐘的間隔。我正在嘗試使用顫振/飛鏢 DateTime 類來實作結果
DateTime now = DateTime.now();
DateTime startTime = DateTime(now.year, now.month, now.day, 8, 0, 0);
DateTime endTime = DateTime(now.year, now.month, now.day, 22, 0, 0);
Duration step = Duration(minutes: 30);
List timeSlots = ['8:30','9:00','9:30']; // this is what I'm trying to achieve (final output)
任何幫助都會得到幫助
uj5u.com熱心網友回復:
你可以這樣做:
void main() {
DateTime now = DateTime.now();
DateTime startTime = DateTime(now.year, now.month, now.day, 8, 0, 0);
DateTime endTime = DateTime(now.year, now.month, now.day, 22, 0, 0);
Duration step = Duration(minutes: 30);
List<String> timeSlots = [];
while(startTime.isBefore(endTime)) {
DateTime timeIncrement = startTime.add(step);
timeSlots.add(DateFormat.Hm().format(timeIncrement));
startTime = timeIncrement;
}
}
如果你把它列印出來,你會得到這個輸出:
[08:30, 09:00, 09:30, 10:00, 10:30, 11:00, 11:30, 12:00, 12:30, 13:00, 13:30, 14:00, 14:30, 15:00, 15:30, 16:00, 16:30, 17:00, 17:30, 18:00, 18:30, 19:00, 19:30, 20:00, 20:30, 21:00, 21:30, 22:00]
注意:我匯入了intl包(import 'package:intl/intl.dart'),所以我可以進行格式化。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/432160.html
上一篇:如何從日期時間索引中獲取浮點值
