javascript – 月经跟踪日历

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

>出血日
>肥沃的阶段
>排卵日

我对该过程的数据

>用户将选择期间开始的日期
>月经范围默认为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

问题是:我无法弄清楚如何根据所有月份的计算将天数突出显示到所有日期

最佳答案 您不必计算所有月份的所有日期,您只需要在日历的每次更新中计算出接下来的两个事件(因为您可能在一个月内最多有两组事件,但从不更多).当用户导航到下个月时,您可以“动态”计算该月的事件.

您已经有时间间隔来计算未来事件的事件.我把你的公式简化为:

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

有了这个,给定一个初始日期,您可以计算任何给定月份的未来事件.您需要做的就是计算出初始事件和您正在查看的月份之间经过了多少个周期.然后简单地将所有事件时间跨度(上面的变量)乘以传递的周期数,并将该天数添加到初始日期.

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

点赞