javascript - 从今天起获得先前值(value)的最佳方式

标签 javascript angularjs node.js logic concept

我正在处理需求,需要检查我已经实现的逻辑。请帮忙。

我想获得从当前日期开始的 1 个月、3 个月和 6 个月的股价返回率。 我有一个表,其中包含日期和价格数组字段,如图所示。

{
"_id" : ObjectId("5a65d0e7bfd103df081a75a8"),
"aId" : 93,
"values" : [ 
    {
        "date" : "2018-02-06",
        "Price" : 27.9057
    }, 
    {
        "date" : "2018-02-05",
        "Price" : 28.0406
    }
  ]
}

我的逻辑

  1. 迭代日期、价格数组并将日期传递给计算天数差异的函数。

    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;
    }
    
  2. 如果天数 = 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);
     }
}

这里我有指数,可以获取该指数的价格值并计算当前值的返回率。

我担心的是

  1. 数组中的值每天都在增加,这会减慢处理速度。
  2. 有时无法获得 30/31/60/61/90/91 的日期差异,因为有些日子是假期,而这些值不在数组中。因此很难获得返回 %。

我正在为此寻找一些有效的逻辑。

谢谢, J

最佳答案

如果我理解正确的话,为什么你要在代码中包含日期部分?仅获取月份和年份,并编写类似 (endyear-startyear)*12+(endmonth-startmonth)- (enddate>=startdate?0:1) 的代码。

我现在没有笔记本电脑支持(从手机写入)。我认为 getMonth() 和 getFullYear() 会帮助你做到这一点

关于javascript - 从今天起获得先前值(value)的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48693634/

相关文章:

javascript - Angular 路由不适用于具有相同模块名称的 Controller

JavaScript 模块 - 从 <script> 移动到 "import ..."不能为某些库完成?

javascript - 为一个请求设置 HTTP header

css - Angular ui-grid 100% 高度在 ng-view 内

node.js - 使用 Google Compute Engine 在 nodejs 上进行负载测试瓶颈

javascript - 为什么 console.log(10150141932135203) 在 Firefox 和 Chrome 中打印 10150141932135204 以及如何处理像这样的大整数值?

javascript - 在 JavaScript 中控制设置

javascript - Angular 中的多个指令

javascript - 如何使用 ExpressJS 访问多个数据库?

javascript - 为什么这个 jquery 代码在刷新页面后不起作用?