完成万年历的制作需要用到数组、循环等知识。
编程计算输入的月份距离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