当前位置:主页   - 电脑 - 程序设计 - JAVA
Java日期操作实例
来源:网络   作者:javaeye    更新时间:2010-09-26
收藏此页】    【字号    】    【打印】    【关闭

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

业务需求:

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));

  }

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明