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 }

 

posted on 2018-11-13 23:07  深海溺心  阅读(174)  评论(0编辑  收藏  举报

导航