完成万年历的制作需要用到数组、循环等知识。
编程计算输入的月份距离1900年1月1日的天数,求出当前月之前的总天数(不包含当前输入月分的天数,)
编程计算输入月份的第一天是星期几,(公式:星期几=1+天数差%7)。
java" id="highlighter_724439">
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
import java.util.Scanner;
public class Calendar{
public static void main(String[] args){
int year;
int month;
int totaldays= 0 ;
Scanner sc= new Scanner(System.in);
System.out.println( "请输入年" );
year=sc.nextInt();
System.out.println( "请输入月" );
month=sc.nextInt();
//计算年的总天数
for ( int i= 1900 ;i<year;i++){
if ((i% 400 == 0 )||(i% 4 == 0 &&i% 100 != 0 )){
totaldays+= 366 ;
} else {
totaldays+= 365 ;
}
}
//距离1900年1月1好的总天数
totaldays+=monthdays(month,year);
//System.out.println(totaldays);
System.out.println( "-------------" +year+ "年" +month+ "月日历为---------------" );
//开头
System.out.println( "星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t" );
//该月第一天是星期几,星期几前面就空几格
int x= 1 +totaldays% 7 ;
if (x== 7 ){
x= 0 ;
}
for ( int i= 0 ;i<x;i++){
System.out.print( " \t" );
}
int days=monthday(month,year);
int i= 1 ;
while (i<=days){
System.out.print(i+ " \t" );
if ((i+x)% 7 == 0 ){
System.out.println();
}
i++;
}
}
//月份总天数
public static int monthdays( int month, int year){
int totaldays= 0 ;
for ( int i= 1 ;i<month;i++){
totaldays+=monthday(i,year);
}
return totaldays;
}
//某月天数
public static int monthday( int month, int year){
if ((year% 400 == 0 )||(year% 4 == 0 &&year% 100 != 0 )){
int [] arr={ 0 , 31 , 29 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 };
return arr[month];
} else {
int [] arr={ 0 , 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 };
return arr[month];
}
}
}
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://blog.csdn.net/lx__angel/article/details/78824806