日历输出程序Java控制流程

基本功能:输入一个月份,给出2019年这个月的日历,日历要求每行显示7列,对应星期一到星期日;
扩展功能:输入一个月份,同时输出该月起始的两个月的日历,要求两个月的日历水平排列而非上下排列。

import java.util.*;
public class program7 {
    public static void main(String []args)
    {
        Scanner scan = new Scanner(System.in);
        System.out.println("Please enter the month here: ");
        int month = scan.nextInt();

        int[] days = {31,28,31,30,31,30,31,31,30,31,30,31};
        int i=0,totalDays=0 ;
        while (i<(month-1)) {
            totalDays = totalDays + days[i];
            i++;
        }
        System.out.println(totalDays);//DELETE
        int totaldays = totalDays+2;

        System.out.println("          "+ month +"月"+"                             "+(month+1)+"月");
        System.out.println("日\t一\t二\t三\t四\t五\t六\t\t日\t一\t二\t三\t四\t五\t六");

        int finaldays = totaldays+days[i];
//*********************************************************
        for (int n =0;n<totaldays%7;n++)
        {
            System.out.print(" \t");
        }
        for (int a =1;a<=7-totaldays%7;a++)
        {
            System.out.print(a + "\t");
        }
        System.out.print(" \t");
        for (int b =0;b<finaldays%7;b++)
        {
            System.out.print(" \t");
        }
        for (int c =1;c<=7-finaldays%7;c++)
        {
            System.out.print(c + "\t");
        }
//**********************************************************
        System.out.println();
        int e=(7-finaldays%7)+1;
        for(int d=(7-totaldays%7)+1;d<=days[month-1];d++)
        {
            System.out.print(d+" \t");
            if((d-(7-totaldays%7))%7==0)
            {
                System.out.print("\t");
                //**************************************************
                while(e<=days[month])
                {
                    System.out.print(e + " \t");
                    int f =e;
                    e++;
                    if((f-(7-finaldays%7))%7==0||f==days[month])
                    { System.out.println();
                        break;
                    }
                }


            }
            if(d==days[month-1])
            {for(int g=0;g<=7-finaldays%7;g++)
            {System.out.print("\t");}

            while (e<=days[month])
            {
                System.out.print(e+" \t");
                int k = e;
                e++;
                if((k-(7-finaldays%7))%7==0)
                {
                    System.out.print("\n\t\t\t\t\t\t\t\t");

                }


            }
            }
        }




        }



    }
  • 10
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值