我希望有数学和循环好的人可以帮助我。我在Objective C中编写了一个程序,我需要想出一个循环的方法。如果您不了解Objective C,我将非常感谢伪代码中的任何帮助,以帮助我解决这个问题。
我需要的是基于两个日期的比例。我知道这将是某种循环,但不知道如何解决它。
例如,假设第一个日期是5/25/1976,第二个日期是9/25/2009。每隔25天会有一个“峰值”,所以它的值将为100.如果我将23分成两半而得到12(圆形),那么它将是相反的或“谷”,所以它的数值将为0.换句话说在第23天,它将在100,但是在第24天,它将开始回落,然后在12天后触底,然后开始循环,并在23天再次上升。
我需要做的是在任意两个给定日期之间找到任何给定日期的数值。
感谢您提供的任何帮助!
答案 0 :(得分:3)
value = 100 * cos(2 * pi *(numDays / 25))
或类似的东西。
答案 1 :(得分:1)
sin()
或cos()
,适当缩放三角函数(将分数乘以2π)。waveform[Δt mod period]
来确定值。)答案 2 :(得分:0)
NSDate类有一个方法timeIntervalSinceDate
,它将为您提供两个日期之间的秒数。您可以计算两个日期之间的天数,如下所示:
- (double) daysBetweenStart:(NSDate*)start end:(NSDate*)end
{
return [start timeIntervalSinceDate:end] / 86400.0; // seconds in a day
}
您可以使用它来计算基于以下内容的步进函数:
- (double) someDescriptiveFunctionName:(NSDate*)date fromDate:(NSDate*)start
{
double days = [self daysBetweenStart:start end:date];
if ((int) days % 23 == 0)
return 100.0;
else
return 0.0;
}
如果给定日期是从开始的23到24天之间,则此函数返回100.0,否则返回0.0。你可以用23代替你喜欢的任何时期。我不确定这是否是您想要的,所以如果不是,请澄清您的问题。
免责声明:这是可可。希望它和iPhone Cocoa一样吗?