7、实例:计算课程结束的日期
生活随笔
收集整理的這篇文章主要介紹了
7、实例:计算课程结束的日期
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
假設(shè),每周曰到周六為整的一周,每周從周日開始算起。其中每周的周一、周二、周五需要去學(xué)校上課,總共再上9天本學(xué)期就結(jié)束了。編寫 Java 程序,計算上完 9 次課后的日期及星期,以及從當天起到本學(xué)期結(jié)束總共需要度過的天數(shù)。具體的程序代碼如下:
import java.util.Calendar; public class Test {// 定義一周所要上課的天數(shù)。定義為周一、周二、周五共3天上課public static final int HAVEClass_OF_WEEK = 3;// 定義需要上的課次public static final int COURSENUM = 9;public static void main(String[] args) {int weekCount = -1; // 定義上完全部課程需要多少周,取整數(shù)int surplusDay = -1; // 取整后多余的天數(shù)int count = 0; // 獲取上了多少次課int surplusClass = -1; // 取整后所剩的課程數(shù)int total = 0; // 上課所花的時間總數(shù)Calendar calendar = Calendar.getInstance();// 獲取今天是周幾int weekdays = (calendar.get(Calendar.DAY_OF_WEEK) - 1);/** 定義一周中所要上課的天數(shù),若上課一天則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;// 獲取取整后剩下的課程數(shù)surplusClass = (COURSENUM - count) - (weekCount * HAVEClass_OF_WEEK);/** 計算取整周后剩下的次數(shù)(從每周日開始算起) 若不剩課程,則日期-1(因為取整后的最后一天為周六,不上課) 則計算周五的日期* 若還剩1節(jié)課,肯定是周一上課,所以天數(shù)+2天 若還剩2節(jié)課,則周一、周二上課,所以天數(shù)+3天 若還剩3節(jié)課,則周一、周二、周五上課,所以天數(shù)+6天*/switch (surplusClass) {case 0:surplusDay = surplusDay - 1;break;case 1:surplusDay += 2;break;case 2:surplusDay += 3;break;case 5:surplusDay += 6;break;}// 要上課所用的總天數(shù)total = surplusDay + (weekCount * 7);// 設(shè)置課程結(jié)束當天的日期calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH) + total);String strWeek = "";int week = (calendar.get(Calendar.DAY_OF_WEEK) - 1);switch (week) {case 1:strWeek = "一";break;case 2:strWeek = "二";break;case 3:strWeek = "三";break;case 4:strWeek = "四";break;case 5:strWeek = "五";break;case 6:strWeek = "六";break;case 7:strWeek = "日";break;}// 如果取整后剩下的課程數(shù)為零,直接取周五的日期System.out.println("距離本學(xué)期結(jié)束還有 " + total + " 天,日期為:" + calendar.get(Calendar.YEAR) + "-"+ (calendar.get(Calendar.MONTH) + 1) + "-" + calendar.get(Calendar.DATE) + ",星期" + strWeek);} }上述代碼首先使用 Calendar.getlnstance() 創(chuàng)建了一個 Calendar 實例,并通過 Calendar 類的 DAY_OF_WEEK 常量獲取了今天的星期,若今天為星期一、星期二、星期五中的任意一天,則上課的次數(shù)加 1。獲取上課所需要的周數(shù)以及剩下的次數(shù)和所需要的天數(shù)。最后設(shè)置課程結(jié)束后當前的日期,并獲取當天的星期。
運行程序,該程序的輸出結(jié)果如下:
距離本學(xué)期結(jié)束還有 19 天,日期為:2019-10-15,星期二總結(jié)
以上是生活随笔為你收集整理的7、实例:计算课程结束的日期的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 6、日期格式化(DateFormat类和
- 下一篇: 8、实例:日期查询