ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java建立日历表

2020-11-15 12:35:19  阅读:252  来源: 互联网

标签:case java 建立 int text 天数 month 日历表 year


1  建立日历表主要步骤

     1.1 获取输入年距1900年1月1日(星期一)的天数。

     1.2 判断输入月的第一天是星期几。

     1.3 获取输入月的总天数。

     1.4 生成日历表

 2  代码

     2.1 判断闰年 (能被4整除且不能被100整除或能被400整除)

static int text_1(int year)  //判断闰年 是返回值为 1
{
    int q;  //返回的值作为判断
    if(year%4==0&&year%100!=0||year%400==0)
    {
        q=1;
        System.out.println("true");
        return q;
    }
    else
    {
        q=0;
        System.out.println("false");
        return q;
    }

  2.2 判断输入月份(1,3,5,7,8,10,12月份是31天,4,6,9,11月份是20天,2 月份闰年29天平年28天)

 static int text_2(int year, int p_month) // 判断月份的天数
    {
        int y = text_1(year); // 定义 y 为 判断闰年的返回值
        int month=0;
        switch (p_month) {
            case 2: {
                int n;
                n = (y == 1) ? 29 : 28;  //判断 y=1时取29 否则取 28
                month=n;
            }
            break;
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                month=31;
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                month=30;
                break;
            default:
                System.out.println("输入月份错误!");
        }
        System.out.println(month);
        return month;
    }

       2.3 计算年天数

  static int text_3(int year)//计算年距1900年的天数
    {
        int all_year=0;

        for(int h=1900;h<year;h++)
        {
            int u=text_1(h); //调用判断 闰年 h 从1900开始
            int  i=(u==1)?366:365;  //根据返回值判断
            all_year+=i;     //计算天数
        }
        System.out.println(all_year);
        return all_year;
    }

       2.4 计算月天数

static int text_4(int year,int month) //判断输入月前的天数
    {
        int q = 0;
        int all_month=0;
        for(int t=1;t<month;t++)
        {
            q =text_2(year,t);  //调用判断月份
            all_month+= q;      //计算天数
        }
        System.out.println(all_month);
        return all_month;
    }

       2.5 计算日历表排列规律并输出

static void text_5(int year,int month)
    {
        int n = text_2(year, month); //调用 判断月份

        int m = text_3(year);     //年天数
        int k = text_4(year,month); //月天数
        int all_day = m + k;        //总天数

        int month_firstday = all_day + 1; //输入月份的第一天
        int week = month_firstday%7;//判断第一天是星期几(周一至周六:1~6 周天:0)

        int time=week;//判断第一天前的空间(星期值-1)
        if(time==0)
        {
            time=7;   //当week=0时是星期天
        }

        for(int u=0;u<time-1;u++)
            System.out.print( "\t\t");//输出空间


        for(int y=1;y<=n;y++)
        {
            System.out.print(" "+y+"\t\t");  //输出月的天数
            week=week%7;  //判断星期
            if(week%7==0)
            {
                System.out.println(" ");  //星期天时换行
            }
            week++; //星期值+1
        }
    }

3 全部代码public class text {

    static int text_1(int year)  //判断闰年 是返回值为 1
    {
        int q;   //返回的值作为判断
        if(year%4==0&&year%100!=0||year%400==0)
        {
            q=1;
            return q;

        }
        else
        {
            q=0;
            return q;
        }
    }
    static int text_2(int year, int p_month) // 判断月份的天数并返回
    {
        int y = text_1(year); // 定义 y 为判断闰年的返回值

        int month=0;

        switch (p_month) {
            case 2: {
                int n;
                n = (y == 1) ? 29 : 28;  //判断 y=1时取29 否则取 28
                month=n;
                   }
            break;
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                month=31;
                     break;
            case 4:
            case 6:
            case 9:
            case 11:
                month=30;
                break;
            default:
                System.out.println("输入月份错误!");
        }
        return month;
    }
    static int text_3(int year)//计算年距1900天数
    {
        int all_year=0;

        for(int h=1900;h<year;h++)
        {
            int u=text_1(h); //调用判断 闰年 h 从1900开始
            int  i=(u==1)?366:365;  //根据返回值判断
            all_year+=i;     //计算天数
        }
        return all_year;
    }
    static int text_4(int year,int month) //判断输入月前天数(输入的年内)
    {
        int q = 0;
        int all_month=0;
        for(int t=1;t<month;t++)
        {
            q =text_2(year,t);  //调用判断月份
            all_month+= q;      //计算天数
        }
        return all_month;
    }
    static void text_5(int year,int month) //计算天数排列规律并输出
    {
        int n = text_2(year, month); //调用 判断月份
        int m = text_3(year);  //年天数
        int k=text_4(year,month); //月天数

        int all_day = m + k; //输入月前的总天数
        int month_firstday = all_day + 1; //输入月份的第一天
        int week=month_firstday%7;//判断第一天是星期几

        int time=week;//判断第一天前的空间(星期值-1)
        if(time==0)
        {
            time=7;   //当week=0是及星期天
        }
        for(int u=0;u<time-1;u++)
            System.out.print( "\t\t");//输出空间
for(int y=1;y<=n;y++) { System.out.print(" "+y+"\t\t"); //输出月的天数 week=week%7; //判断星期 if(week%7==0) { System.out.println(" "); //星期天时换行 } week++; //星期值+1 } } public static void main(String[] args) { Scanner p=new Scanner(System.in); Scanner q=new Scanner(System.in); System.out.println("输入年份"); int w=p.nextInt(); System.out.println("输入月份"); int u=q.nextInt(); System.out.print("星期一\t"+"星期二\t"+"星期三\t"+"星期四\t"+"星期五\t"+"星期六\t"+"星期天\t"); System.out.println(""); text_5(w,u); } }

  

 

标签:case,java,建立,int,text,天数,month,日历表,year
来源: https://www.cnblogs.com/fcajchd/p/13976158.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有