我正在研究需求,需要检查一下我实施的逻辑。请帮忙。
我想从当前日期获得1个月,3个月和6个月的股票价格回报%。 我有一个表格,其中包含日期和价格数组字段,如图所示。
{
"_id" : ObjectId("5a65d0e7bfd103df081a75a8"),
"aId" : 93,
"values" : [
{
"date" : "2018-02-06",
"Price" : 27.9057
},
{
"date" : "2018-02-05",
"Price" : 28.0406
}
]
}
遍历日期,价格数组并将日期传递给计算天差的函数。
function differenceFromTodayInDays(FromDate) {
var currentDate = new Date();
var previousDate = new Date(FromDate);
var difference = Math.floor(currentDate.getTime() - previousDate.getTime());
var secs = Math.floor(difference / 1000);
var mins = Math.floor(secs / 60);
var hours = Math.floor(mins / 60);
var days = Math.floor(hours / 24);
return days;
}
如果天数= 30,31或60,61或91,90,92,93,则将天数推入不同的数组
if (differenceInDays == 30 || differenceInDays == 31) {
$scope.days30.push(index);
所以整体到现在
$scope.timeDiffInDays = function(index, otherDate) {
$scope.days30 = [];
var differenceInDays = differenceFromTodayInDays(otherDate);
if (differenceInDays == 30 || differenceInDays == 31) {
$scope.days30.push(index);
}
}
这里我有索引并且可以获取该索引的价格值并从当前值计算回报%。
我正在寻找一些有效的逻辑。
谢谢, Ĵ
答案 0 :(得分:0)
如果我理解为什么您在代码中包含日期部分?只获得月份和年份并编写代码(endyear-startyear)* 12 +(endmonth-startmonth) - (enddate> = startdate?0:1)。
我现在没有笔记本电脑支持(通过电话写信)。我认为getMonth()和getFullYear()将帮助你做到这一点