Java基础10-循日历制作
编写过程:先指定固定的年份来输出指定月份的日历
1 /*计算1900年1月1日到2018年11月1日一共有多少天
2 计算月份
3 对7进行取模,结果就为星期几
4 */
5 import java.util.Scanner;
6
7 public class Test1{
8 public static void main(String[] args){
9 int sum=0;
10 for(int year=1900;year<=2017;year++){
11 if(year%4==0&&year%100!=0||year%400==0){//闰年
12 sum=sum+366;
13 }else{
14 sum=sum+365;
15 }
16 }
17 for(int month=1;month<=10;month++){
18 if(month==2){
19 if(2018%4==0&&2018%100!=0||2018%400==0){
20 sum=sum+29;
21 }else{
22 sum=sum+28;
23 }
24 }else if(month==4||month==6||month==9||month==11){
25 sum=sum+30;
26 }else{
27 sum=sum+31;
28 }
29 }
30 sum=sum+1;
31 System.out.println("1900年1月1日到2018年11月1日一共有"+sum+"天");
32
33 int wekDay=sum%7;
34 System.out.println("2018年11月1日为星期"+sum%7);
35
36 System.out.println("日\t一\t二\t三\t四\t五\t六");
37 for(int i=1;i<=wekDay;i++){
38 System.out.print("\t");
39 }
40 for(int i=1;i<=30;i++){//输出2018年11月份的日历
41 if(sum%7==6){
42 System.out.print(i+"\n");
43 }else{
44 System.out.print(i+"\t");
45 }
46 sum++;
47 }
48
49 }
50 }
将代码变灵活,从控制台输入月份和年份,来生成日历
1 import java.util.Scanner;
2 public class Cal{
3 public static void main(String[] args){
4 Scanner in=new Scanner(System.in);
5 System.out.println("-----万年历-----");
6 System.out.println("请输入年份:");
7 int year=in.nextInt();
8 System.out.println("请输入月份:");
9 int month=in.nextInt();
10 int sum=0;
11 int days;
12 for(int i=1900;i<=year-1;i++){
13 if(i%4==0&&i%100!=0||i%400==0){//闰年
14 sum=sum+366;
15 }else{
16 sum=sum+365;
17 }
18 }
19 for(int i=1;i<=month-1;i++){
20 if(i==2){
21 if(year%4==0&&year%100!=0||year%400==0){
22 sum=sum+29;
23 }else{
24 sum=sum+28;
25 }
26 }else if(i==4||i==6||i==9||i==11){
27 sum=sum+30;
28 }else{
29 sum=sum+31;
30 }
31 }
32 sum=sum+1;
33 //System.out.println("1900年1月1日到2018年11月1日一共有"+sum+"天");
34
35 int wekDay=sum%7;
36 //System.out.println("2018年11月1日为星期"+sum%7);
37
38 System.out.println("日\t一\t二\t三\t四\t五\t六");
39 for(int i=1;i<=wekDay;i++){
40 System.out.print("\t");
41 }
42
43 if(month==2){
44 if(year%4==0&&year%100!=0||year%400==0){
45 days=29;
46 }else{
47 days=28;
48 }
49 }else if(month==4||month==6||month==9||month==11){
50 days=30;
51 }else{
52 days=31;
53 }
54
55 for(int i=1;i<=days;i++){//输出2018年11月份的日历
56 if(sum%7==6){
57 System.out.print(i+"\n");
58 }else{
59 System.out.print(i+"\t");
60 }
61 sum++;
62 }
63
64 }
65 }