日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java 制作简易日历_Java制作简单日历

發(fā)布時(shí)間:2024/3/24 java 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 制作简易日历_Java制作简单日历 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.用for循環(huán)、switch

以1990.01.01作為參考

public class Demo_9 {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);

System.out.print("輸入年、月(如:2020 01):");

int year = scan.nextInt();

int month = scan.nextInt();

int daysum = 0; // 天數(shù)加和

int week = 0; //初始化星期

//判斷閏年,并將每年的天數(shù)相加

for (int i = 1990; i < year; i++) {

if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {

daysum += 366;

} else {

daysum += 365;

}

}

//用循環(huán)將最后一年每個(gè)月天數(shù)相加

for (int i = 1; i < month; i++) {

switch (i) {

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

daysum += 31;

break;

case 2:

if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {

daysum += 29;

break;

} else {

daysum += 28;

break;

}

default:

daysum += 30;

}

}

//儲存所查詢的當(dāng)前月的天數(shù)

int day = 0;

switch (month) {

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

day = 31;

break;

case 2:

if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {

day = 29;

break;

} else {

day = 28;

break;

}

default:

daysum += 30;

day = 30;

}

week = daysum % 7 + 1; //計(jì)算當(dāng)前月的一號星期幾

//制作日歷

System.out.println("一\t二\t三\t四\t五\t六\t日\t");

for (int i = 1; i < day + week; i++) {

if (i < week) {

System.out.print("\t");

} else {

if ((i - 1) % 7 == 0) {

System.out.println();

}

System.out.print((i - week + 1) + "\t");

}

}

}

}

2.將重復(fù)的代碼封裝調(diào)用

public class Demo {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);

System.out.print("請輸入 年 月(2000 1):");

int year = scan.nextInt();

int month = scan.nextInt();

int daysum = dayForMonth(year, month);

int week = dayForYear(year, month) % 7 + 1;

if (year < 1990) {

System.out.println("抱歉!1990年以前暫不支持!!!");

return;

}

if (daysum < 0) {

System.out.println("輸入的月份有誤,請重新輸入!");

return;

}

System.out.println("\t\t" + " " + year + "年" + month + "月");

System.out.println("一\t二\t三\t四\t五\t六\t日\t");

for (int i = 1; i <= daysum + week - 1; i++) {

if (i < week) {

System.out.print("\t");

} else {

System.out.print(i - (week - 1) + "\t");

if (i % 7 == 0) {

System.out.println("\n");

}

}

}

}

// 閏年的判斷

public static boolean isLeapYear(int year) {

if (year % 400 == 0 || year % 4 == 0 && year % 400 == 0) {

return true;

} else {

return false;

}

}

// 每個(gè)月的天數(shù)

public static int dayForMonth(int year, int month) {

switch (month) {

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

return 31;

case 4:

case 6:

case 9:

case 11:

return 30;

case 2:

if (isLeapYear(year)) {

return 29;

} else {

return 28;

}

}

return -1;

}

// 從參考值到所求值的天數(shù)

public static int dayForYear(int year, int month) {

int day = 0;

for (int i = 1990; i < year; i++) {

if (isLeapYear(i)) {

day += 366;

} else {

day += 365;

}

}

for (int i = 0; i < month; i++) {

day += dayForMonth(year, i);

}

return day;

}

}

3.總結(jié)

對于第一種方法,將一些代碼重復(fù)使用,書寫麻煩,觀看不簡潔。

對于第二種,將重復(fù)使用的代碼進(jìn)行封裝,直接調(diào)用,程序出錯(cuò)修改方便。

小白還是第一次寫博客,作為一名Java的初學(xué)者,在寫第一種方法時(shí),知識存儲量不夠,另外思維不夠嚴(yán)謹(jǐn),沒有將出錯(cuò)情況編寫進(jìn)入,輸入錯(cuò)誤的數(shù)據(jù)也會出現(xiàn)答案,小白將自己的學(xué)習(xí)過程發(fā)出來,希望各位大佬們指點(diǎn),一起加油進(jìn)步。

總結(jié)

以上是生活随笔為你收集整理的java 制作简易日历_Java制作简单日历的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。