- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在开发一个用于月经周期计算器的日历,我必须突出显示下一阶段的日子,它们是
我拥有的流程数据
用户将选择经期开始的日期
默认28天的月经范围
数据处理
根据周期开始日期和周期范围,将应用上述公式
用于计算三个不同的日期范围
使用日期范围,日期的突出显示将应用于当年和 future 几年
所有区间的计算步骤
出血日期计算
假设用户选择的日期为“a”假设默认周期为“X”
出血天数=x + 3天
生育期计算
受精阶段 I
公式提供了阶段 1 的结束日期
阶段 I 的范围从所选日期到阶段 1 的结束日期
公式
b =[{a +(x-1)-19}]
肥沃阶段 II
c=[{a+(x-1)-10}]
受精期
从(b+1)到(c-1)的范围是可育期范围
排卵日
特定日期=[(b-1) +{(c-b)/2}]
我正在使用 jqm calendar
问题是:我不知道如何根据所有月份的计算将highlighting of days
复制到所有日期
最佳答案
您不必计算出所有月份的所有日期,您只需要在每次更新日历时计算出接下来的两个事件(因为您可能在一个月内有多达两组事件但永远不会更多的)。当用户导航到下个月时,您可以“即时”计算该月的事件。
您已经知道了事件之间的时间跨度,可以根据这些时间跨度计算 future 的事件。我已将您的公式简化为:
var periodCycleDays = 28;
var fertilePhaseStart = periodCycleDays - 20;
var fertilePhaseEnd = periodCycleDays - 11;
var ovulation = (fertilePhaseStart-1) + (fertilePhaseEnd - fertilePhaseStart)/2;
有了这个,给定一个初始日期,您可以计算任何给定月份的 future 事件。您需要做的就是算出从初始事件到您正在查看的月份之间经过了多少个周期。然后只需将所有事件时间跨度(上面的变量)乘以经过的周期数,并将该天数添加到初始日期。
下面是您如何执行此操作的演示:http://jsfiddle.net/2sf4gfdr/
关于javascript - 月经追踪日历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27671225/
我是一名优秀的程序员,十分优秀!