java如何获得同比日期_Java日期操作实例

1.每周的 周一 周二 周五 上课。

2.计算上完50节课后计算最后一天是日期。

Java代码

package com.test;

import java.util.Calendar;

/**

* @author: polly

* @version:1.0

* @category:19/08/09

* @see:

*   定义:周日 --> 周六 为整的一周 。 每周从周日开始算起

*   业务需求:

*   1.每周的 周一 周二 周五 上课。

*   2.计算上完50节课后计算最后一天是日期。

*

* */

public class CalcTest {

//定义一周所要上课的天数。 定义为 周一 周二 周五 三天上课!

static final int HAVEClass_OF_WEEK = 3;

// 定义该课程为50节

static final int COURSENUM = 9 ;

public static void main(String [] args){

//定义上完全部所需要多少周,取整数

int weekCount = -1;

//取整后多余的天数

int surplusDay = -1;

//获取上了多少次课.

int count = 0;

// 取整后所剩的课程数

int surplusClass = -1;

//上课所花的时间总数

int total = 0;

Calendar calendar=Calendar.getInstance();

//获取今天是周几

int weekdays = (calendar.get(Calendar.DAY_OF_WEEK)-1);

/* 定义一周中所要上课的天数,若上课一天count+1;

* 周一 周二 周五 上课

* 今天是周三,这个星期只有周五上课。

*/

switch (weekdays){

case 0:

case 1: //上课

count ++ ;

case 2: //上课

count ++ ;

case 3:

case 4:

case 5: //上课

count ++ ;

case 6:

break;

}

/*

* 计算今天是周几,如果不是周末,则计算到周六还有几天

* (因为从周日算成一周的开始)

*/

if(0 != weekdays)

surplusDay = 6 - weekdays;

//获取上课所用多少周,取整

weekCount = (COURSENUM-count) / HAVEClass_OF_WEEK;

//获取取整后剩下的课程数

surplusClass =(COURSENUM-count) - (weekCount * HAVEClass_OF_WEEK) ;

/*

* 计算取整周后剩下的课程数。 (从每周日开始算起)

* 若不剩课程,则日期-1 (因为取整后的最后一天为周六,不上课),

* 则计算周五的日期

* 若还剩1节课,肯定是 周一上课,所以天数+2天

* 若还剩2节课,则 周一 周二 上课,所以天数+3天

* 若还剩3节课,则 周一 周二 周五上课,所以天数+6天

*/

switch (surplusClass){

case 0:

surplusDay = surplusDay - 1;

break;

case 1:

surplusDay += 2;

break;

case 2:

surplusDay += 3;

break;

case 5:

surplusDay += 6;

break;

}

//要上课所用的总天数

total = surplusDay + (weekCount * 7) ;

//设置课程结束当天的日期

calendar.set(Calendar.DAY_OF_MONTH,calendar.get(Calendar.DAY_OF_MONTH)+total);

//如果取整后所剩下的课程数为零,直接就是取周五的日期

System.out.println("学完这个课程的时间跨度是"+total+"天 , 上完课程后的日期: "+calendar.get(Calendar.YEAR)+"-"+(calendar.get(Calendar.MONTH)+1)+"-"+calendar.get(Calendar.DATE)+" 星期:"+(calendar.get(Calendar.DAY_OF_WEEK)-1));

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值