0

我有一个表格,其中包含日期、每个时期的周数和一年。然后用户输入一个日期,我可以从中计算出期间数。但我也想用另一种方式来做:输入一个时期号并从中获取时期的开始和结束日期。不幸的是,我似乎无法得到正确的逻辑。有人可以指导我吗?

谢谢你。

编辑:options[0] 是数据库的开始日期,options[1] 是一个时期的周数。

这是我已经拥有并且有效的功能:

private function dateToPeriod(date:Date):Number
    {
        var d = new Date(options[0]);
        var periode = Math.floor((date.time - d.time)/(604800000*options[1])+1);
        return periode;
    }

假设我的开始日期是 2009 年 12 月 12 日,然后将 2009 年 12 月 12 日传递给这个函数将返回 1,因为它是从这个日期开始的第一个“期间”(以周数表示)。

我想要的是制作一个 periodToDate 函数。

4

1 回答 1

1

根据新信息编辑的答案

好吧,这很简单。您可以将值添加到日期属性。再试一次,未测试。

public function addPeriodToDate(date:Date, period:int, numWeeksInPeriod:int):Date
{
    var periodDate:Date = new Date(date.time);
    periodDate.date += period * numWeeksInPeriod;
    return periodDate;
}

结束编辑

我没有对此进行测试,只是一些快速代码,但我认为这应该让你朝着正确的方向前进。

private function dateToPeriod(date:Date):Number
{
    var d = new Date(options[0]);
    var diffInMilliseconds:Number = date.time - d.time;
    var diffInWeeks:Number = diffInMilliseconds / 1000 / 60 / 60 / 24 / 7;
    var weeksInPeriod:Number = options[1];
    var period:int = diffInWeeks / weeksInPeriod + 1;

    return period;
}
于 2009-12-31T19:51:10.107 回答