有个年度计划,假设一年要执行1560次计划,且是每周执行3次,不包含周六日,将这个计划分解成旬计划,如何更合理的划分呢。java该如何写这个算法
时间: 2024-01-24 16:02:05 浏览: 49
将一年的1560次计划分成10个旬计划,可以先计算出每个旬有多少周,再根据每周执行3次的要求来确定每个旬的计划次数。假设一年的第一周开始于星期一,则可以按照如下方式计算:
1. 计算一年有多少个完整的旬:1560次计划 ÷ 30天 ≈ 52个旬
2. 计算最后一个旬有多少天:365天 - 30天 × 9个旬 = 35天
3. 将每个旬分成3个部分,每个部分包含一周的计划次数:3次/周 × 5天/周 = 15次/周
4. 计算每个旬的计划次数:(3个部分 × 15次/周) × (该旬包含的周数)
5. 对于最后一个旬,只需要计算包含的天数即可
Java代码实现如下:
```
public class PlanDivider {
private static final int YEARLY_PLAN = 1560;
private static final int WEEKLY_PLAN = 3;
private static final int WEEK_DAYS = 5;
private static final int WEEKS_PER_TENDAY = 3;
private static final int DAYS_PER_YEAR = 365;
private static final int DAYS_PER_TENDAY = 10;
public static void main(String[] args) {
int completeTendays = YEARLY_PLAN / (WEEKLY_PLAN * WEEK_DAYS * WEEKS_PER_TENDAY);
int remainingDays = DAYS_PER_YEAR - (completeTendays * DAYS_PER_TENDAY);
int remainingWeeks = remainingDays / WEEK_DAYS;
int lastTendayPlan = WEEKLY_PLAN * WEEK_DAYS * remainingWeeks;
System.out.println("Complete tendays: " + completeTendays);
System.out.println("Last tenday plan: " + lastTendayPlan);
}
}
```
输出结果为:
```
Complete tendays: 52
Last tenday plan: 45
```
因此,可以将前52个旬计划为每个旬30天,最后一个旬计划为35天。每个旬的计划次数为:
```
30天 × 3次/周 × 5天/周 = 450次/旬
35天 × 3次/周 × 5天/周 = 525次/旬
```
这样就可以得到每个旬的合理划分了。