我正在創建一個包含訂閱的應用程式。現在,如果客戶從今天的日期到某個時間段下訂單,我必須計算總金額(每天都會有所不同)。為此,我需要一段時間內的作業日數(如星期一、星期二等)。很高興你能回答這個問題。
uj5u.com熱心網友回復:
更具體的答案,因為我使用從開始日期到結束日期的回圈。
希望這是你需要的。如果您只需要數字,您可以訪問workingDays.length以接收作業日計數。
final workingDays = <DateTime>[];
final currentDate = DateTime.now();
final orderDate = currentDate.add(Duration(days: 10));
DateTime indexDate = currentDate;
while (indexDate.difference(orderDate).inDays != 0) {
final isWeekendDay = indexDate.weekday == DateTime.saturday || indexDate.weekday == DateTime.sunday;
if (!isWeekendDay) {
workingDays.add(indexDate);
}
indexDate = indexDate.add(Duration(days: 1));
}
uj5u.com熱心網友回復:
讓我們考慮用戶選擇了一個日期時間
DateTime userPickedDate = DateTime.now();
創建日期時間串列
List<DateTime> workingDaysList = [];
現在如果用戶選擇從今天起 10 天
for(var i == 0; i < 10; i )
{
if(userPickedDate.add(Duration(days:1)).weekday <= 5) //1 for Monday, 2 for Tuesday so checking 5 for Friday
{
workingDaysList.add(userPickedDate.add(Duration(days:1)));
}
}
userPickedDate 此串列將包含作業日的所有 DateTime
uj5u.com熱心網友回復:
我能夠成功解決我的問題。首先,我取了開始日期和結束日期的差異。
final difference = end.difference(start).inDays;
然后我為開始日期宣告了一個臨時變數,并為幾天宣告了一些變數。
DateTime temp = start;
int monday = 0, tuesday = 0, wednesday = 0, thursday = 0, friday = 0, saturday = 0, sunday = 0;
然后我開始回圈,直到計算出差異。
for(int i = 0; i < difference; i ){
if(temp.add(Duration(days: i)).weekday == DateTime.monday){
monday ;
}else if(temp.add(Duration(days: i)).weekday == DateTime.tuesday){
tuesday ;
}else if(temp.add(Duration(days: i)).weekday == DateTime.wednesday){
wednesday ;
}else if(temp.add(Duration(days: i)).weekday == DateTime.thursday){
thursday ;
}else if(temp.add(Duration(days: i)).weekday == DateTime.friday){
friday ;
}else if(temp.add(Duration(days: i)).weekday == DateTime.saturday){
saturday ;
}else if(temp.add(Duration(days: i)).weekday == DateTime.sunday){
sunday ;
}
}
print("$monday $tuesday $wednesday $thursday $friday $saturday $sunday");
我有我需要的東西。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/496829.html
下一篇:從R腳本中提取日期
