Java实验项目二打印万年历

package _____;
import java.util.Scanner;
public class wnl//万年历主类
{
    public static void main(String[] args)
    {
        
        menu();
        Scanner sc=new Scanner(System.in);
        int menu=sc.nextInt();
        if(menu==1)
        {
            System.out.println("(1)、请输入一个年份");
         
            int year=sc.nextInt();        
            boolean f1=pdrn(year);
            if(f1==true)
            {
                System.out.println("该年份是闰年");
            }
            else
            {
                System.out.println("该年份不是闰年,是平年");
            }
        }
        
        else if(menu==2)
        {        
            System.out.println("(2)、请输入几年几月份");
            int year=sc.nextInt();
            int month=sc.nextInt();
            int day=monthDay(year,month);
            System.out.println("该"+month+"月有"+day+"天");
        }
        else if(menu==3)
        {            
            System.out.println("(3)、请输入几年几月");
            int year=sc.nextInt();
            int month=sc.nextInt();
            int days=timesum(year,month);
            System.out.println(year+"年"+month+"月前距1900年1月1号有"+days+"天");
        }
        else
        {
            System.out.println("(4)、请输入你想打印几年几月");
            int year=sc.nextInt();
            int month=sc.nextInt();
            printCalendar(year,month);
        }
            
    }
    public static void menu()
    {
            
        System.out.println("请选择你想要测试的是哪一项");
        System.out.println("(1)判断闰年");
        System.out.println("(2)判断某年某月有多少天");
        System.out.println("(3)计算某年某月前距离1900年1月1日的总天数");
        System.out.println("(4)输出某年某月日历");            
    }
    public static boolean pdrn(int year)//判断闰年
    {
        if(year%400==0&&year%100==0)
        {            
            return true;
        }
        else if(year%4==0&&year%100!=0)
        {            
            return true;
        }
        else
        {
            return false;  
        }
    }
    public static int monthDay(int y,int m)//计算某个月天数
    {
        boolean f2=pdrn(y);
        if(m==2)//2月时候
        {
            if(f2==true)
            {
                return 29;
            }
            else
            {
                return 28;
            }
        }
        else if(m==4||m==6||m==9||m==11)
        {            
            return 30;
        }
        else
        {
            return 31;
        }
                
    }
    
    
    
    public static int timesum(int y,int m)//计算天数和
    {
        int days=0;
        if(y<1900)
        {
            System.out.println("请输入1900年以后的时间");//如果用户不小心输入1900年以前的时间,系统退出
            System.exit(-1);
        }
        for(int i=1900;i<y;i++)    
        {
            if(pdrn(i)==true)
            {
                days+=366;   //闰年加上366天
            }
            else
            {
                days+=365;   //平年加上365天
            }
            
        }
        for(int j=1;j<m;j++)
        {
            days+=monthDay(y,j);  //加上每个月的天数
        }
        return days;
        
    }

public static void printCalendar(int y,int m)
    {
        int days=timesum(y,m);
        int blank=(days+1)%7;  
        int day=monthDay(y,m);
        System.out.println("日\t"+"一\t"+"二\t"+"三\t"+"四\t"+"五\t"+"六\t");
        for(int i=1;i<=blank;i++)
        {
            System.out.print("\t");
        }
        for(int i=1;i<=day;i++)
        {            
            System.out.print(i+"\t");
            if((i+blank)%7==0)
            {
                System.out.println();
            }
        }
        System.out.println();
    }

}//参考借鉴宋佳丽程序思路框架;

时间: 2024-11-05 21:39:49

Java实验项目二打印万年历的相关文章

Java实验项目二——打印某年某月日历

Program:打印万年历(输入年份,月份,输出该月的日历,已知1900年1月1日是星期一), 要 求: (1)编写一个方法判断闰年: (2)编写一个方法判断某年某月有多少天: (3)编写一个方法计算某年某月前距离1900年1月1日的总天数:(4)编写一个输出某年某月日历的方法: (5)编写一个测试方法. Description:该项目由多个类实现,最后类为main方法的调用.代码如下: 1 /* 2 *Description:定义工具类 3 * 4 * */ 5 6 package tools

Java实验项目二——二维数组实现九九乘法表

Program:打印乘法口诀表 (1)编写一个方法,参数(二维数组),完成将二维数组中的数据按照行列显示的工作. (2)编写一个测试方法,给出99乘法表,放入到二维数组中,调用(1)中的方法,显示乘法口诀表. Description:main方法所在类在最后给出,代码如下: 1 /* 2 *Description:定义工具类,负责初始化二维数组和打印二维数组 3 * 4 * */ 5 6 package tools; 7 8 9 public class Operate { 10 11 //初始

Java实验项目二——小学生考试系统(简单四则运算)

Program:设计实现一个小学生数学考试系统,完成随机出题(简单的四则运算),学生答题,自动判分的功能. Description:代码如下: 1 /* 2 * Description:面向考试系统建立类TestSystem 3 * 4 * */ 5 6 package entity; 7 8 public class TestSystem { 9 10 private int num1; //声明两个操作数 11 private int num2; 12 private String oper

Java实验报告二:Java面向对象程序设计

Java实验报告二:Java面向对象程序设计                                                                                                      实验要求: 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计模式 实验内容 (一)单元测试 (二)面向对象三要素 (三)设计模式初步 (四)练习

Java实验报告二

北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计实验   班级:1353  姓名:符运锦  学号:20135323 成绩:                           指导教师:娄嘉鹏      实验日期:2015.5.8 实验密级:无            预习程度:                   实验时间:15:30~18:00 仪器组次:  23                    必修/选修: 选修              

java实验项目报告

        JAVA课程项目报告   题目:利用java实现一个时钟的小程序 姓名:王国梁 班级:计科13-2 学号:201303011200         利用JAVA实现一个时钟的小程序 1. 软件开发的需求分析 在当今的信息时代,时钟已经成为人们生活中必不可少的应用工具 ,Java语言是当今流行的网络编程语言,它具有面向对象.与平台无关.安全.多线程 等特点.使用Java语言不仅可以实现大型企业级的分布式应用系统,还能够为小型的.嵌入 式设备进行应用程序的开发.面向对象的开发方法是当

20135337朱荟潼Java实验报告二

实验二 Java面向对象程序设计 一.实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计模式 二.实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程 2.完成实验.撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等).解决办法(空洞的方法

【温故知新】从零开始搭建 java web项目(二)

系列一介绍了新建一个 web 项目的基本步骤,系列二就准备介绍下基本的 jsp 和  servlet 使用. (关于jsp的编译指令.动作指令.内置对象不在本文讨论范围之内) 1. 首先,在 pom.xml 文件中添加 jsp 和 servlet 的支持包. <dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</

Java实验报告(二)及总结

实验二 Java简单类与对象 一. 实验目的 (1) 掌握类的定义,熟悉属性.构造函数.方法的作用,掌握用类作为类型声明变量和方法返回值: (2) 理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实例的方法和属性: (3) 理解static修饰付对类.类成员变量及类方法的影响. 二. 实验内容 1. 写一个名为Rectangle的类表示矩形.其属性包括宽width.高height和颜色color,width和height都是double型的,而color则是String类型的.要求该类