當前位置:編程學習大全網 - 源碼下載 - 幫搞個JAVA制作的萬年歷

幫搞個JAVA制作的萬年歷

import java.util.Scanner;

public class PrintCalendar {

/**

* @param args

*/

public static void main(String[] args) {

System.out.println("******************歡 迎 使 用 萬 年 歷******************");

Scanner input = new Scanner(System.in);

System.out.print("\n請選擇年份: ");

int year = input.nextInt();

System.out.print("\n請選擇月份: ");

int month = input.nextInt();

System.out.println();

int days = 0; // 存儲當月的天數

boolean isRn;

/* 判斷是否是閏年 */

if (year % 4 == 0 && !(year % 100 == 0) || year % 400 == 0) { // 判斷是否為閏年

isRn = true; // 閏年

} else {

isRn = false;// 平年

}

/* 計算輸入的年份之前的天數 */

int totalDays = 0;

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

/* 判斷閏年或平年,並進行天數累加 */

if (i % 4 == 0 && !(i % 100 == 0) || i % 400 == 0) { // 判斷是否為閏年

totalDays = totalDays + 366; // 閏年366天

} else {

totalDays = totalDays + 365; // 平年365天

}

}

/* 計算輸入月份之前的天數 */

int beforeDays = 0;

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

switch (i) {

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

days = 31;

break;

case 2:

if (isRn) {

days = 29;

} else {

days = 28;

}

break;

default:

days = 30;

break;

}

if (i < month) {

beforeDays = beforeDays + days;

}

}

totalDays = totalDays + beforeDays; // 距離1900年1月1日的天數

/* 計算星期幾 */

int firstDayOfMonth; // 存儲當月第壹天是星期幾:星期日為0,星期壹~星期六為1~6

int temp = 1 + totalDays % 7; // 從1900年1月1日推算

if (temp == 7) { // 求當月第壹天

firstDayOfMonth = 0; // 周日

} else {

firstDayOfMonth = temp;

}

/* 輸出日歷 */

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

for (int nullNo = 0; nullNo < firstDayOfMonth; nullNo++) {

System.out.print("\t"); // 輸出空格

}

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

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

if ((totalDays + i - 1) % 7 == 5) { // 如果當天為周六,輸出換行

System.out.println();

}

}

}

}

  • 上一篇:反子網掩碼的詳解
  • 下一篇:引領建倉源碼課程
  • copyright 2024編程學習大全網