一个简单的日历代码
MyCalendar
?學習Java基礎,寫了一個簡單的日歷代碼=。=
可以打印某年某個月份的日歷
適合Java入門敲一哈
?主要的知識點:
- 基礎的循環和分支語句,如:switch,for;
- 同一個類里的方法之間的調用;
- 方法參數和返回值的靈活使用;
- 形參與實參;
注意閏年的判斷=。=
year % 4 == 0 && year % 100 != 0 || year % 400 == 0;
?
import java.util.Scanner;public class MyCalendar {// 我的日歷;public boolean isLeapYear(int year) {// 判斷是否為閏年 返回ture or flase;return year % 4 == 0 && year % 100 != 0 || year % 400 == 0;}public int getDay(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:return isLeapYear(year) ? 29 : 28;default:return 0;}}public int allDays(int year, int month) {// 計算從1990年1月到某年某月之前的天數;int allDays = 0;for (int i = 1900; i < year; i++) {// 計算1990~year-1之間的天數if (isLeapYear(i)) {allDays += 366;} else {allDays += 365;}}for (int i = 1; i < month; i++) {// 計算year年month-1月之前的天數allDays += getDay(year, i);}return allDays;}public void calendar(int year, int month) {// 打印日歷;int space = allDays(year, month) % 7;// 計算每個月前面有多少個空格System.out.println("一\t二\t三\t四\t五\t六\t日");for (int i = 1; i <= space; i++) {System.out.print(" \t");}for (int i = 1; i <= getDay(year, month); i++) {System.out.print(i + "\t");if ((i + space) % 7 == 0) {System.out.println();}}}public static void main(String[] args) {MyCalendar mc = new MyCalendar();Scanner input = new Scanner(System.in);System.out.println("請輸入年份:");int year = input.nextInt();System.out.println("請輸入月份:");int month = input.nextInt();System.out.println(year + "年" + month + "月");mc.calendar(year, month);}}好好學習,天天Java!
總結
- 上一篇: 2015 2020 r4烧录卡 区别_2
- 下一篇: 程序规划方法漫谈