$day = $fa_day <= $days_in_month ? $fa_day : $days_in_month;
} else {
# Try to guess the next day in month
- my $delta_days = int((28 - ($fa_day - 1)) / $freqdata->{issuesperunit});
+ my $days_in_month = Days_in_Month($year, $month);
+ my $delta_days = int(($days_in_month - ($fa_day - 1)) / $freqdata->{issuesperunit});
($year,$month,$day) = Add_Delta_Days($year, $month, $day, $delta_days);
$subscription->{countissuesperunit}++;
}
$day = $fa_day <= $days_in_month ? $fa_day : $days_in_month;
} else {
# Try to guess the next day in year
- my $delta_days = int((365 - ($fa_day - 1)) / $freqdata->{issuesperunit});
+ my $days_in_year = Days_in_Year($year,12); #Sum the days of all the months of this year
+ my $delta_days = int(($days_in_year - ($fa_day - 1)) / $freqdata->{issuesperunit});
($year,$month,$day) = Add_Delta_Days($year, $month, $day, $delta_days);
$subscription->{countissuesperunit}++;
}
};
$publisheddate = $subscription->{firstacquidate};
$publisheddate = GetNextDate($subscription, $publisheddate);
-is($publisheddate, '1970-01-15');
+is($publisheddate, '1970-01-16', 'January has 31 days');
$publisheddate = GetNextDate($subscription, $publisheddate);
is($publisheddate, '1970-02-01');
$publisheddate = GetNextDate($subscription, $publisheddate);
-is($publisheddate, '1970-02-15');
+is($publisheddate, '1970-02-15', 'February has only 28 days');
$publisheddate = GetNextDate($subscription, $publisheddate);
is($publisheddate, '1970-03-01');
};
$publisheddate = $subscription->{firstacquidate};
$publisheddate = GetNextDate($subscription, $publisheddate);
-is($publisheddate, '1970-01-15');
+is($publisheddate, '1970-01-16', 'January has 31 days');
$publisheddate = GetNextDate($subscription, $publisheddate);
-is($publisheddate, '1970-02-15');
+is($publisheddate, '1970-02-15', 'February has only 28 days');
$publisheddate = GetNextDate($subscription, $publisheddate);
is($publisheddate, '1970-04-01');
$publisheddate = GetNextDate($subscription, $publisheddate);
-is($publisheddate, '1970-04-15');
+is($publisheddate, '1970-04-16', 'April has 30 days');
$publisheddate = GetNextDate($subscription, $publisheddate);
is($publisheddate, '1970-05-01');