编写一个Java程序,显示本年中给定月份的月历,按照周格式输出。

编写一个Java程序,显示本年中给定月份的月历,按照周格式输出。,第1张

写了个简明的,

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=0i<wday-1i++) 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

输入本年的某个月后,屏幕输出这个月的月历,每星期一行,从星期日开始,到星期六结束。

import java.util.*

public class Year{

/**

*判断是否为闰年

*/

public boolean getIsRun(int year){

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

return true

}

return false

}

/**

*返回某年某月有多少天。

*/

public int getDay(int year ,int month){

int[] day={31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}//闰年月份

int[] day1={31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}//普通月份

if(this.getIsRun(year)){

return day[month+1]

}else{

return day1[month+1]

}

}

/**

*返回这个月的1号是星期几

*/

public int getWeek(int year,int month){

Date date=new Date()

date.setYear(year)

date.setMonth(month)

Calendar calendar=Calendar.getInstance()

calendar.setTime(date)

return calendar.get(calendar.DAY_OF_WEEK)

}

/**

*打印出来,嘎嘎

*/

public void showPrint(int year,int month){

int day=this.getDay(year,month)

int week=this.getWeek(year,month)

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

for(int i=0i<=weeki++){//

System.out.print (" \t")

}

for(int j=1j<=dayj++){

if((j+week)%7==0){

System.out.println ()

}

System.out.print (j+"\t")

}

// System.out.println(week)

}

public static void main(String[] args){

Year y=new Year()

y.showPrint(2008,3)

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11131856.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存