java實現(xiàn)日歷功能
本文實例為大家分享了java實現(xiàn)日歷功能的具體代碼,供大家參考,具體內(nèi)容如下
完成一個 java application應(yīng)用程序,輸出一份當(dāng)前所在時區(qū)當(dāng)前時間的一個月的日歷(1號到28/29/30/31號,以及每天對應(yīng)為星期幾)。
思路:
(1)獲得這一年是否是閏年。閏年的2月只有28天,非閏年2月有29天。其他1、3、5、7、8、10、12月每月31天,2、4、6、9、11每月30天。
(2)根據(jù)上一步獲得這個月的總天數(shù)。
(3)獲得這個月第一天是星期幾。然后依次填充。直到這個月最后一天。
代碼如下:
import java.text.*; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.Scanner; class MyCalendar { ? ?? ?public static void main(String[] args) throws ParseException ?? ?{?? ??? ? ?? ??? ?int maxDay = 0;?? ? ?? ??? ?int firstDay = 0;?? ? ?? ??? ?int currentDay = 0;?? ??? ? ?? ??? ? ?? ??? ?System.out.println("請輸入一個日期:格式為:2020-02-02");?? ? ?? ??? ?Scanner sc = new Scanner(System.in); ?? ??? ?String str = sc.nextLine();?? ?//鍵盤輸入日期格式的字符串 ?? ??? ?DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); ?? ??? ?Date date = format.parse(str);?? ?//將字符串轉(zhuǎn)化為指定的日期格式 ?? ??? ??? ? ?? ??? ?Calendar calendar = new GregorianCalendar(); ?? ??? ?calendar.setTime(date);?? ?//將日期轉(zhuǎn)化為日歷 ?? ??? ?maxDay = calendar.getActualMaximum(Calendar.DATE);?? ?//當(dāng)前日期中當(dāng)前月對應(yīng)的最大天數(shù) ?? ??? ?currentDay = calendar.get(Calendar.DATE);?? ?//當(dāng)前日期中的當(dāng)前天 ?? ??? ?calendar.set(Calendar.DATE, 1); // 設(shè)置為當(dāng)前月的第一天 ?? ??? ?firstDay = calendar.get(Calendar.DAY_OF_WEEK);?? ?//當(dāng)前日期中當(dāng)前月第一天對應(yīng)的星期數(shù) ??? ??? ?System.out.println("------------------------------------------------------"); ?? ??? ?System.out.println("周日\t周一\t周二\t周三\t周四\t周五\t周六\n"); ?? ??? ?System.out.println("------------------------------------------------------"); ?? ??? ?for (int j = 1; j < firstDay; j++) //當(dāng)前月第一天之前以空格輸出 ?? ??? ?{ ?? ??? ??? ?System.out.print("\t"); ?? ??? ?}? ?? ??? ?for (int i = 1; i <= maxDay; i++) //輸出當(dāng)月每一天的號數(shù) ?? ??? ?{ ?? ??? ??? ?if (i == currentDay) //以*i表示當(dāng)天日期 ?? ??? ??? ?{ ?? ??? ??? ??? ?System.out.print("*"); ?? ??? ??? ?} ?? ??? ??? ?System.out.print(i + "\t"); ?? ??? ??? ?if ((i - (8 - firstDay)) % 7 == 0) //以七天為一個循環(huán)輸出所有天數(shù) ?? ??? ??? ?{ ?? ??? ??? ??? ?System.out.println("\n"); ?? ??? ??? ?}? ?? ??? ?} ?? ?} }
結(jié)果如下:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
學(xué)會IDEA REST Client后就可以丟掉postman了
這篇文章主要介紹了學(xué)會IDEA REST Client后就可以丟掉postman了,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12Spring Boot 開發(fā)私有即時通信系統(tǒng)(WebSocket)
本文利用Spring Boot作為基礎(chǔ)框架,Spring Security作為安全框架,WebSocket作為通信框架,實現(xiàn)點對點聊天和群聊天2017-04-04Spring boot集成swagger2生成接口文檔的全過程
這篇文章主要給大家介紹了關(guān)于Spring boot集成swagger2生成接口文檔的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用Spring boot具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09詳解Java使用super和this來重載構(gòu)造方法
這篇文章主要介紹了詳解Java使用super和this來重載構(gòu)造方法的相關(guān)資料,這里提供實例來幫助大家理解這部分內(nèi)容,需要的朋友可以參考下2017-08-08