java列印一年日曆,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-tw/n/196131.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-03 09:52
下一篇 2024-12-03 09:52

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Java 8 Group By 會影響排序嗎?

    是的,Java 8中的Group By會對排序產生影響。本文將從多個方面探討Group By對排序的影響。 一、Group By的概述 Group By是SQL中的一種常見操作,它…

    編程 2025-04-29

發表回復

登錄後才能評論