我有一张表格,其中包含日期,每个期间的周数和一年的数字。然后用户输入日期,我可以从中计算出周期数。但我也想以另一种方式做到这一点:输入一个句号并从中得到期间的开始和结束日期。不幸的是,我似乎无法获得正确的逻辑。任何人都可以指导我吗?
谢谢。
编辑: options [0]是数据库的开始日期,[0]是一个周期的周数。
这是我已经拥有的功能,并且有效:
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;
}
让我说我的开始日期是12/12/2009,然后通过12/12/2009到这个函数会返回1,因为它是从这个日期开始的第一个“期间”(以周数表示)。
我想要的是制作一个periodToDate函数。
答案 0 :(得分:1)
基于新信息的编辑答案
好吧,这很简单。您可以在date属性中添加值。再试一次,未经测试。
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;
}