我正在开发一个用于月经周期计算器的压光机,我必须强调下一个阶段的日子,它们是

  • 出血天
  • 生育期 排卵日
    我为进程提供的数据
  • 用户将在句点开始时选择日期
  • 月经范围默认为28天

  • 通过数据处理

    随着期的开始日期和周期范围,将应用上述公式

    用于计算三个不同的日期范围

    使用日期范围,日期突出显示将应用于年份和以后的年份

    所有范围的计算步骤

    出血日期计算

    假设用户选择日期为“a”
    假设默认周期为“X”

    出血天数= x + 3天

    肥沃阶段钙化

    肥沃的第一阶段

    该公式提供了阶段1的结束日期

    第一阶段的范围是从选择的日期到第一阶段的结束日期

    公式

    b = [{a +(x-1)-19}]

    肥沃的第二阶段

    c = [{a +(x-1)-10}]

    肥沃阶段

    从(b + 1)到(c-1)的范围是肥沃的相范围

    排卵日

    特定日期= [(b-1)+ {(c-b)/2}]

    我正在使用jqm calendar

    问题是:我不知道如何根据所有月份的计算将highlighting of days复制到所有日期

    最佳答案

    您不必计算出所有月份的所有日期,您只需要真正地计算出日历的每次更新中的下两个事件(因为一个月中最多可能会有两组事件,但永远不会更多)。当用户导航到下个月时,您可以“即时”计算该月的事件。

    您已经掌握了两次事件之间的时间间隔,可以根据这些时间间隔来计算将来的事件。我已将您的公式简化为:

    var periodCycleDays = 28;
    var fertilePhaseStart = periodCycleDays - 20;
    var fertilePhaseEnd = periodCycleDays - 11;
    var ovulation = (fertilePhaseStart-1) + (fertilePhaseEnd - fertilePhaseStart)/2;
    

    这样,给定一个初始日期,您就可以计算任何给定月份的 future 事件。您需要做的就是计算从初始事件到要查看的月份之间经过了多少个周期。然后,只需将所有事件时间跨度(上面的变量)乘以经过的周期数,然后将该天数加到初始日期上即可。

    以下是您如何执行此操作的演示:http://jsfiddle.net/2sf4gfdr/

    10-08 18:40