WEB开发网
开发学院软件开发Java Java 日期操作实例 阅读

Java 日期操作实例

 2009-09-17 00:00:00 来源:WEB开发网   
核心提示:定义:周日 --> 周六 为整的一周 , 每周从周日开始算起 业务需求: 1.每周的 周一 周二 周五 上课,Java 日期操作实例, 2.计算上完50节课后计算最后一天是日期, Java代码 packagecom.test;importjava.util.Calendar;/***@author:polly*@

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

业务需求:

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

Tags:Java 日期 操作

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接