日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Java編寫日歷表的3種方式

瀏覽:23日期:2023-02-12 13:37:02

大家好,今天我和大家分享一下用Java編寫日歷表,我用了3種方式實現這一功能的。

首先我們來看看一個日歷表有什么特征。在這里我就把我電腦上的日歷表截下來分析一下

Java編寫日歷表的3種方式

我們從上向下看:這個日歷表顯示了年份,月份,星期數即星期一到星期日,每一天對應一個星期數,天數每隔七天換一下行,當月的總天數。還有一個就是每個月的第一天是接著上個月的最后一天的。

我們發現我們想要創建一個日歷表就只需要知道年份,月份和該月份的第一天是星期幾還有就是該月份的總天數就行。

年份和月份是我們自己設置要查看的年份和月份,每個月的總天數我們都是知道的,只要知道月份就能知道該月份的總天數,不過2月份除外,2月份的總天數需要判斷該年是平年還是閏年。最后一個問題就是怎么樣獲取該月份的第一天是星期幾?在上面我提到過每個月的第一天是接著上個月的最后一天的,并且1900年1月1日是星期一,我們可以把從1900年到我們指定日期的前一個月的總天數求出來對7取余,就是上一個月最后一天的星期數(也是這個月開始前面的空格數)

我寫的第一種方式:不用Java中的類

獲取從1900年到我們指定日期的前一個月的總天數

//指定的日歷年份 public static int year; //指定的日歷月份 public static int month;​ //獲得總天數 public static int getDaysFrom1900() {int days = 0;//統計從1900年到指定日歷年份的前一年的天數for (int i = 1900; i < year; i++) { days += isLeapYear(i) ? 366 : 365;}//統計從一月到指定日歷月份的前一個月的天數for (int i = 1; i < month; i++) { days += getDaysFromMonth(i);}return days; } //獲取指定月份的天數 private static int getDaysFromMonth(int month) {switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12:return 31; case 2:return isLeapYear(year) ? 29 : 28; default:return 30;} }​ //判斷指定年份是平年還是閏年 private static boolean isLeapYear(int year) {return (year % 4 == 0 && year % 100 != 0 || year % 400 == 0); }

​顯示:這里用計數器來計數,能計空格的數量

//顯示日歷 public static void show() {//獲取從1900年到指定月份前一個月的總天數int totalDays = getDaysFrom1900();//獲取指定月份的天數int daysOfMonth = getDaysFromMonth(month);//獲取指定月份第一天前面的空格數int space = totalDays % 7;//計數器int count = 0;//顯示System.out.println('一t二t三t四t五t六t日');System.out.println('==========================');for (int i = 0; i < space; i++) { count++; System.out.print('t');}for (int i = 1; i <= daysOfMonth; i++) { count++; System.out.print(i + 't'); if (count % 7 == 0) {count = 0;//換行System.out.println(); }}}

我寫的第二種方式:使用Java中的Calendar類,Calendar類中提供了getActualMaximum(Calendar.DAY_OF_MONTH)方法來獲取指定月份的總天數,我們可以利用Calendar類中的set(Calendar.DAY_OF_MONTH, 1)方法把日期中的天數設置為當月的第一天,然后通過get(Calendar.DAY_OF_WEEK)獲取當月的第一天的星期數

public static void show(int y, int m) {//獲取當前系統時間Calendar c = Calendar.getInstance();//獲取當前的日期int year = c.get(Calendar.YEAR);int month = c.get(Calendar.MONTH) + 1;int day = c.get(Calendar.DAY_OF_MONTH);//設置指定的日期c.set(Calendar.YEAR,y);c.set(Calendar.MONTH,m-1);c.set(Calendar.DAY_OF_MONTH, 1);//獲取指定月份的總天數int dayOfMonth = c.getActualMaximum(Calendar.DAY_OF_MONTH);//獲取指定月份第一天的星期int dayOfWeek = c.get(Calendar.DAY_OF_WEEK) - 1;//顯示System.out.println('一t二t三t四t五t六t日');System.out.println('==========================');dayOfWeek = dayOfWeek == 0 ? 7 : dayOfWeek;//獲取指定月份前面的空格數int space = dayOfWeek - 1;int count = 0;for (int i = 0; i < space; i++) { count++; System.out.print('t');}for (int i = 1; i <= dayOfMonth; i++) { count++; //判斷是不是當前系統的日期時間 String date = (y == year && m == month && i == day) ? '*' + i + 't' : i + 't'; System.out.print(date); if (count % 7 == 0) {count = 0;System.out.println(); }}​ }

​我寫的第三種方式:使用Java中的LocalDate類,LocalDate類中提供了getMonth()的方法來獲取指定的月份而Month枚舉中提供了

length(boolean leapYear)的方法來獲取指定月的總天數,LocalDate類中還提供了getDayOfWeek()的方法來獲取指定天數的星期數。我用LocalDate類中提供的LocalDate.of(y,m,1)把日期中的天數設置為當月的第一天**

public static void show(int y, int m) {//獲取當前系統時間LocalDate date = LocalDate.now();//獲取當前的日期int year = date.getYear();int month = date.getMonth().getValue();int day = date.getDayOfMonth();//設置指定的日期LocalDate date1 = LocalDate.of(y,m,1);//獲取指定月份的總天數int daysOfMonth = date1.getMonth().length(y % 4 == 0 && y % 100 != 0 || y % 400 == 0);//獲取指定月份前面的空格數int space= date1.getDayOfWeek().getValue()-1;System.out.println('一t二t三t四t五t六t日');System.out.println('==========================');int count = 0;for (int i = 0; i < space; i++) { count++; System.out.print('t');}for (int i = 1; i <= daysOfMonth; i++) { count++; //判斷是不是當前系統的日期時間 String src = (y == year && m == month && i == day) ? '*' + i + 't' : i + 't'; System.out.print(src); if (count % 7 == 0) {count = 0;System.out.println(); }} }

main函數:第一種方式中的show()方法沒有參數,因為我設置了成員變量來接收,下面的是第二和第三種方式的main函數。

public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println('請輸入年份:');int year = sc.nextInt();System.out.println('請輸入月份:');int month = sc.nextInt();show(year, month); }

運行結果:

第一種方式:

Java編寫日歷表的3種方式

第二和第三中方式:我在顯示表的時候判斷了一下是不是當前的系統日期。

Java編寫日歷表的3種方式

總結:對于日歷表的問題,只要知道月份的第一天是星期幾還有就是該月份的總天數就能解決。第一種方式是我初學Java的解決方式、第二種方式是我學到Calendar類的解決方式、第三種方式是我學到LocalDate類的解決方式。隨著我們不斷的學習Java這門語言,我們的眼界就會在這個學習的過程中不斷開闊,就會對一個問題產生不同的看法,不同的解決思路。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
伊人久久国产| 久久人人99| 亚洲国内精品| 老牛国内精品亚洲成av人片| 亚洲精品免费观看| 夜夜精品视频| 欧美福利专区| 国产不卡一区| 欧美在线观看视频一区| 国产精品福利在线观看播放| 国产精品久久| 91精品在线免费视频| 一区二区亚洲视频| 日韩午夜av| 香蕉久久夜色精品国产| 国产视频一区在线观看一区免费| 国产成人调教视频在线观看| 成人污污视频| 日韩中文首页| 午夜精品亚洲| 中文字幕成人| 国产欧美一区二区三区米奇| 久久av国产紧身裤| 国产精品视频一区二区三区综合| 国产精品99精品一区二区三区∴| 国产欧美一区二区精品久久久| 久久爱www.| 蜜臀国产一区| 亚洲午夜黄色| 中文字幕日韩亚洲| 久久精品国产久精国产爱| 国产videos久久| 91久久视频| 国产日韩1区| 四虎影视精品| 日韩中文一区二区| 岛国av在线播放| 美日韩精品视频| 日本麻豆一区二区三区视频| 精品一级视频| 91超碰国产精品| 日韩av资源网| 亚洲成人二区| 日本欧美在线| www.九色在线| 成人av动漫在线观看| 天堂成人免费av电影一区 | 日韩黄色免费网站| 欧美日一区二区三区在线观看国产免| 久久国产人妖系列| 日本在线观看不卡视频| 久久国产婷婷国产香蕉| 国产精品18| 韩国久久久久久| 欧美日韩激情在线一区二区三区| 蜜臀av性久久久久蜜臀aⅴ流畅 | 美国三级日本三级久久99| 日本h片久久| 精品三级国产| 免费不卡中文字幕在线| 在线亚洲成人| 麻豆一区二区三区| 欧美日韩国产一区二区三区不卡| 免费视频一区二区| 国产精品午夜一区二区三区| 国产精品22p| 欧美日一区二区| 亚洲精品裸体| 国产精品亚洲四区在线观看 | 国产亚洲永久域名| 久久精品av麻豆的观看方式| 欧美国产一级| 综合欧美亚洲| 精品久久精品| 久久久久久久久丰满| 国产日韩一区二区三区在线播放| 高清日韩中文字幕| 日韩一级不卡| 日本91福利区| 日韩电影免费在线观看| 中文不卡在线| 国产精品xx| 中文亚洲欧美| 麻豆国产精品一区二区三区| 欧美日韩免费观看一区=区三区| 婷婷久久免费视频| 日本在线高清| 老牛国产精品一区的观看方式| 久久久久久久久成人| 夜久久久久久| 麻豆一区二区三区| 午夜视频精品| 国产欧美视频在线| 亚洲福利国产| 国产极品模特精品一二| 精品中文字幕一区二区三区av| 国产欧美自拍一区| 欧美网站在线| 精品国产欧美日韩| 亚洲香蕉久久| 色综合www| 美女91精品| 精品中文字幕一区二区三区av| 国产精品v亚洲精品v日韩精品 | 国产探花一区在线观看| 99国产精品| www在线观看黄色| 伊人久久亚洲| 91青青国产在线观看精品| 亚洲午夜国产成人| 久久久夜精品| 九九九精品视频| 日韩精品免费视频人成| 97欧美在线视频| 亚洲国内精品| 国产精品福利在线观看播放| 欧美在线91| 日韩中文欧美在线| 午夜av成人| 国产一区福利| 久久激情五月婷婷| 水野朝阳av一区二区三区| 女生影院久久| 精品亚洲成人| 久久国产乱子精品免费女| 久久亚洲不卡| 秋霞影视一区二区三区| 久久爱www.| 国产午夜久久av| 亚洲一区二区日韩| 一区在线视频观看| 99视频精品全国免费| 国产福利片在线观看| 97久久亚洲| 日本久久二区| 中文字幕一区二区三区四区久久| 成人精品中文字幕| 国产福利片在线观看| 国产一区精品福利| 久久国内精品自在自线400部| 日韩一区二区三免费高清在线观看 | 日韩在线观看一区| 精品国产18久久久久久二百| 都市激情国产精品| 国产伦精品一区二区三区在线播放| 中国字幕a在线看韩国电影| 国产福利资源一区| 天堂av一区| 午夜亚洲福利| 日本vs亚洲vs韩国一区三区二区| 综合亚洲色图| 久热re这里精品视频在线6| 不卡av一区二区| 亚洲一区二区三区中文字幕在线观看| 五月精品视频| 在线国产一区二区| 国产视频一区欧美| 日韩在线一区二区| 亚洲aa在线| 亚洲精品护士| 欧美在线日韩| 久久中文字幕一区二区三区| 国产一区二区视频在线看| 国产精品国码视频| 日韩专区在线视频| 欧美aⅴ一区二区三区视频| 精品视频一区二区三区在线观看 | 91一区二区三区四区| 中文字幕一区久| 91偷拍一区二区三区精品| xxxxx性欧美特大| 日本午夜大片a在线观看| 99热精品在线观看| 日韩一区精品| 国产精品porn| 午夜精品成人av| 伊人成人网在线看| 亚洲精品麻豆| 久久久久久久久成人| 午夜影院一区| 黄色亚洲大片免费在线观看| 欧美在线影院| 国产麻豆一区| 国产在线观看www| 欧美日韩免费看片| 不卡一区2区| 日韩综合一区二区三区| 国产精品jk白丝蜜臀av小说| 精品高清久久| 欧美在线亚洲| 91麻豆精品激情在线观看最新 | 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 最近国产精品视频| 欧美激情aⅴ一区二区三区| 神马午夜在线视频| 中文日韩欧美| 欧美激情91| 欧美一区=区| 欧美国产另类| 999国产精品999久久久久久|