程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2EE >> Java日期操作實例

Java日期操作實例

編輯:J2EE

定義:周日 --> 周六  為整的一周 。 每周從周日開始算起

業務需求:

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. 下一頁:
Copyright © 程式師世界 All Rights Reserved