我想从另一个类调用函数(底部的代码),但我不确定如何从中提取下面的阶段。
phases[0]
phases[1]
phases[2]
phases[3]
phases[4]
这不是我的代码,我是从别人那里得到的,我希望有人能告诉我如何从中获取相位并将其打印到屏幕上。
到目前为止,我使用以下
调用该函数Phase phase = new Phase();
phase.phasehunt5(??);
代码:
/// Find time of phases of the moon which surround the current
// date. Five phases are found, starting and ending with the
// new moons which bound the current lunation.
public static void phasehunt5( double sdate, double[] phases )
{
double adate, nt1, nt2;
RefDouble k1 = new RefDouble();
RefDouble k2 = new RefDouble();
adate = sdate - 45;
nt1 = meanphase(adate, 0.0, k1);
for (;;)
{
adate += synmonth;
nt2 = meanphase(adate, 0.0, k2);
if (nt1 <= sdate && nt2 > sdate)
break;
nt1 = nt2;
k1.val = k2.val;
}
phases[0] = truephase(k1.val, 0.0);
phases[1] = truephase(k1.val, 0.25);
phases[2] = truephase(k1.val, 0.5);
phases[3] = truephase(k1.val, 0.75);
phases[4] = truephase(k2.val, 0.0);
}
全班可以在下面的链接中找到
答案 0 :(得分:1)
请注意,当您致电phasehunt5(...)
时,您会传递double
数组phases
。
自提供数组以来,您已经可以访问所有值。调用phasehunt5
后,结果将显示在您提供的数组中。
答案 1 :(得分:0)
从您提供的代码看起来就像您应该使用日期和double[]
调用代码一样,该函数会自动将元素插入到数组中。
例如:
double[] phases = new double[5];
Phase.phasehunt5(someDate,phases);
然后phases
将成为你的五个阶段的双重数组。