【问题标题】:Menstrual Tracking Calendar月经追踪日历
【发布时间】:2014-12-27 20:33:28
【问题描述】:

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

  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) +{(c-b)/2}]

我正在使用jqm calendar

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

【问题讨论】:

  • 嗯...这是我客户的要求。如果您对上述问题有任何想法,请帮助我。我开发了比这更好的东西
  • 您能否编辑您的问题,以便更好地了解您目前拥有的数据,以及您想要弄清楚的下一步究竟是什么?是关于使用 jQuery 移动日历的问题,还是在寻求算法方面的帮助?
  • jQuery 移动日历已经成功实现,如 jsfiddle 所示。我需要算法方面的帮助,我可以在其中实现代码以突出显示问题中提出的特定日期。
  • 我建议您重组您的问题以消除日历控制代码,然后明确您拥有哪些数据,以及您试图最终获得哪些数据。
  • 我正在尝试构建一个类似于此链接 kotex.com/na/period-planners/quick-period-calculator.aspx 的日历

标签: javascript jquery css jquery-mobile calendar


【解决方案1】:

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

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

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

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

这里有一个演示你可以如何做到这一点:http://jsfiddle.net/2sf4gfdr/

【讨论】:

  • 感谢您的帮助@benjaminjosephw
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-28
  • 2019-07-15
  • 2016-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多