本文目錄一覽:
- 1、Java日曆打印,怎麼加輸入年份,打印整年12個月打印,輸入月份打印季節,下面代碼如何優化,給個思路?
- 2、編寫一個JAVA應用程序,要求從鍵盤輸入某年份,然後打印出該年全年的日曆。
- 3、Java編寫程序,輸入年份,輸出本年度各月份日曆
- 4、java萬年曆打印輸出格式問題
- 5、關於java中輸出日曆
Java日曆打印,怎麼加輸入年份,打印整年12個月打印,輸入月份打印季節,下面代碼如何優化,給個思路?
建議封裝函數,使用數組完成所有的打印
比如獲取天數,getDays(int year,int month)
獲取星期,getDay(int allDays)
獲取極度,getQuater(int month)
然後打印重載寫print方法,傳入的flag不同打印年 嫉妒等
編寫一個JAVA應用程序,要求從鍵盤輸入某年份,然後打印出該年全年的日曆。
首先鍵盤輸入的話多種方式實現,提供兩種,一是使用main方法的arg參數,也就是在使用java命令的時候後面跟上參數,在main方法里調用arg[0]即可,第二種方法是使用scanner類來得到system.in的內容
然後就是打印全年,這個只要使用Calendar類即可,得到Calendar對象以後通過一個循環365次,不斷的day加一即可
Java編寫程序,輸入年份,輸出本年度各月份日曆
寫了個簡明的,
import java.util.Calendar;
import java.util.Scanner;
public class Test {
static public void main(String 參數[]){
Calendar c = Calendar.getInstance();
Scanner sc = new Scanner(System.in);
System.out.println(“請輸入年份:”);
int year= sc.nextInt();
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, Calendar.JANUARY);
c.set(Calendar.DAY_OF_MONTH, 1);
while(c.get(Calendar.YEAR)==year){
int wday=c.get(Calendar.DAY_OF_WEEK);
int mday=c.get(Calendar.DAY_OF_MONTH);
if(mday==1){
System.out.println(“\n日\t一\t二\t三\t四\t五\t六\t第”+(c.get(Calendar.MONTH)+1)+”月”);
System.out.println(“—————————————————“);
for(int i=0;iwday-1;i++) System.out.print(” \t”);
}
System.out.print(mday+”\t”);
if(wday==7) System.out.println();
c.add(Calendar.DAY_OF_YEAR, 1);
}
}
}
=======
請輸入年份:
2012
日 一 二 三 四 五 六 第1月
—————————————————
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
日 一 二 三 四 五 六 第2月
—————————————————
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29
日 一 二 三 四 五 六 第3月
—————————————————
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
日 一 二 三 四 五 六 第4月
—————————————————
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
日 一 二 三 四 五 六 第5月
—————————————————
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
日 一 二 三 四 五 六 第6月
—————————————————
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
日 一 二 三 四 五 六 第7月
—————————————————
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
日 一 二 三 四 五 六 第8月
—————————————————
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
日 一 二 三 四 五 六 第9月
—————————————————
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
日 一 二 三 四 五 六 第10月
—————————————————
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
日 一 二 三 四 五 六 第11月
—————————————————
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30
日 一 二 三 四 五 六 第12月
—————————————————
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
java萬年曆打印輸出格式問題
運行了下你的這個代碼 , 不止2008是錯的 其他年份都是錯的。
給個例子你:
import java.util.Scanner;
/**
* java輸入年,月得到日曆
*
* @author young
*
*/
public class PrintCalendar {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print(“Enter full year (eg:2001):”);
int year = input.nextInt();
System.out.print(“Enter month in number 1 between 12:”);
int month = input.nextInt();
printMonth(year, month);
}
public static void printMonth(int year, int month) {
printMonthTitle(year, month);
printMonthBody(year, month);
}
public static void printMonthTitle(int year, int month) {
System.out.println(” ” + getMonthName(month) + ” ” + year);
System.out.println(“______________________________”);
System.out.println(” Sun Mon Tue Wed Thu Fri Sat”);
}
public static String getMonthName(int month) {
String monthName = ” “;
switch (month) {
case 1:
monthName = “Fanuary”;
break;
case 2:
monthName = “January”;
break;
case 3:
monthName = “March”;
break;
case 4:
monthName = “April”;
break;
case 5:
monthName = “May”;
break;
case 6:
monthName = “June”;
break;
case 7:
monthName = “July”;
break;
case 8:
monthName = “August”;
break;
case 9:
monthName = “September”;
break;
case 10:
monthName = “October”;
break;
case 11:
monthName = “November”;
break;
case 12:
monthName = “December”;
}
return monthName;
}
public static void printMonthBody(int year, int month) {
int startDay = getStartDay(year, month);
int numberOfDaysInMonth = getNumberOfDaysInMonth(year, month);
int i = 0;
for (i = 0; i startDay; i++) {
System.out.printf(“%4s”, ” “);
}
for (i = 1; i = numberOfDaysInMonth; i++) {
System.out.printf(“%4d”, i);
if ((i + startDay) % 7 == 0)
System.out.println();
}
// System.out.println();
}
public static int getStartDay(int year, int month) {
final int START_DAY_FOR_JAN_1_1800 = 3;
int totalNumberOfDays = getTotalNumberOfDays(year, month);
return (totalNumberOfDays + START_DAY_FOR_JAN_1_1800) % 7;
}
public static int getTotalNumberOfDays(int year, int month) {
int total = 0;
for (int i = 1800; i year; i++)
if (isLeapYear(i))
total = total + 366;
else
total = total + 365;
for (int i = 1; i month; i++)
total = total + getNumberOfDaysInMonth(year, i);
return total;
}
// 每個月天數
public static int getNumberOfDaysInMonth(int year, int month) {
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8
|| month == 10 || month == 12)
return 31;
if (month == 4 || month == 6 || month == 8 || month == 11)
return 30;
if (month == 2)
return isLeapYear(year) ? 29 : 28;
return 0;
}
// 判斷閏年
public static boolean isLeapYear(int year) {
return year % 400 == 0 || (year % 4 == 0 year % 100 != 0);
}
}
關於java中輸出日曆
第一句將用戶輸入的數字設為日曆對象的「年」成員變量,第二句和第三句同樣,一個是月份,一個是按照每月第一天開始的日期,第四句用於取得一個默認的日曆對象。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/196131.html