月经追踪日历

mad*_*van 5 javascript css jquery calendar jquery-mobile

我正在开发一个用于月经周期计算器的日历,我必须突出显示下一阶段的日子,它们是

  1. 出血天数
  2. 肥沃阶段
  3. 排卵日

我拥有的流程数据

  1. 用户将选择期间开始的日期

  2. 月经范围默认28天

按数据处理

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

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

使用日期范围,日期的突出显示将应用于今年和未来几年

所有范围的计算步骤

出血日期计算

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

出血天数=x + 3 天

生育期计算

肥沃的第一阶段

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

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

公式

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

肥沃的第二阶段

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

肥沃阶段

从 (b+1) 到 (c-1) 的范围是可育期范围

排卵日

具体日期=[(b-1) +{(cb)/2}]

我正在使用jqm 日历

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

ben*_*phw 2

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

您已经获得了事件之间的时间跨度,可以从中计算未来的事件。我已将您的公式简化为:

var periodCycleDays = 28;
var fertilePhaseStart = periodCycleDays - 20;
var fertilePhaseEnd = periodCycleDays - 11;
var ovulation = (fertilePhaseStart-1) + (fertilePhaseEnd - fertilePhaseStart)/2;
Run Code Online (Sandbox Code Playgroud)

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

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