1 回答
TA贡献1796条经验 获得超4个赞
需要注意的一点是,您引用的开源软件包中的 XIRR 实现具有(如果您不熟悉 var args)意味着您可以拥有任意数量的事务元素。它还允许您输入数组。XIRR还可以接受集合(例如ArrayLists),所以我在下面的代码中所做的是:public Xirr(Transaction... tx){
在用户输入中创建一个要读取的内容
Scanner
创建日期格式化程序以将字符串转换为日期
创建一个保存事务的
ArrayList
基于用户输入的迭代计数器
一个循环,它循环用户预定义的数量,并向每次迭代添加一个新值,其中包含用户的下一个 int 和下一个字符串(通过日期格式化程序转换为日期)。
for
iterations
Transaction
ArrayList
我将 ArrayList 输入到 Xirr 方法中。
试试这个:
//import java.text.SimpleDateFormat;
//import java.util.ArrayList;
//import java.util.Date;
//import java.util.Scanner;
public double xirr_issue5b() {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Scanner sc = new Scanner(System.in);
ArrayList<Transaction> trans = new ArrayList<Transaction>();
int iterations = sc.nextInt();
for(int k = 0; k < iterations; k++) {
trans.add(new Transaction(sc.nextInt(), format.parse(sc.next())));
}
double rate = Xirr(trans).xirr();
sc.close();
return rate;
}
添加回答
举报