我創建了一個生成ExpenseModel物件的函式,
在創建物件和設定日期時,我隨機使用月份和日期,并將 2022 年作為固定年份。
但即使它生成 2021 以及我給出了 28 的隨機范圍但也生成了 31...
無法弄清楚我在哪里做錯了......
這是我的代碼
void createexpenses() {
expensies.clear();
for (int x = 1; x <= 50; x ) {
expensies.add(ExpenseModel(
category: categories[Random().nextInt(6)],
amount: Random().nextInt(100),
date: DateTime(2022, Random().nextInt(12), Random().nextInt(28))));
//here i have given fixed year 2022,and day upto 28
}
這是我的費用模式
class ExpenseModel
{
String category;
int amount;
DateTime date;
ExpenseModel({required this.category,required this.amount,required this.date});
}
這是我顯示此費用的代碼...
Widget build(BuildContext context) {
createexpenses(); //creating 50 objects of ExpenseModel
return Scaffold(
body: SafeArea(
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 10.0),
child: Column(
children: [
StatusWidget(amount:totalexpense),
SizedBox(
height: 10,
),
Expanded(
child: ListView.builder(
itemCount: expensies.length,
itemBuilder: (context, index) {
final data = expensies[index];
return Padding(
padding: const EdgeInsets.only(bottom: 8.0),
child: ExpenseTile(data: data),
);
}))
],
),
),
),
);
}
這是費用代碼
class ExpenseTile extends StatelessWidget {
ExpenseModel data;
ExpenseTile({Key? key,required this.data}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
padding: EdgeInsets.symmetric(vertical: 15),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(20),
color: Colors.grey[200],
),
child: ListTile(
title: Text(data.category.toString()),
trailing: Container(
decoration: BoxDecoration(
color: Colors.grey[300],
borderRadius: BorderRadius.circular(20),
),
padding: EdgeInsets.all(10),
child: Text(data.amount.toDouble().toString(),style: TextStyle(fontSize: 20,fontWeight: FontWeight.bold),)),
subtitle: Text(DateFormat("dd-MM-yyyy").format(data.date)),
leading: CircleAvatar(child: Text(data.category.substring(0,1)),),
),
);
}
}

uj5u.com熱心網友回復:
Random.nextInt()生成一個非負隨機整數,均勻分布在從 0(含)到 [max](不含)的范圍內。因此,在您的情況下,您的月份亂數為 0-11,當您在月份中輸入 0 時,DateTime 類將年份減少 1 并將月份設定為 12。對于天數相同,如果您得到 0,則月份 -1 和日期將是最后可能的你得到的月份中的哪一天。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/530339.html
標籤:扑镖约会时间
上一篇:無法在php中獲取正確的日期格式
下一篇:查找年份之間的分鐘數
