java程序设计一个日历,不用封装的类的程序

public class Calendar {

public static void main(String[] args) {
    int newYear = 0;//输入的年份
    int newMounth = 0;//输入的月份
    int newDay = 0;//输入的号
    int yearOfDaySum =0;//输入的那一年离1900年有几天
    int mounthOfDaySum=0;//输入的那一个月份离输入的年份的一月一日有几天
    int dayOfDaySum =0;//离1900年一月一日有多少天
    int dayOfWeek = 0;//输入的那一天是星期几
    int mounthOfWeek=0;//输入的哪一个月的一号是星期几
    int day = 0;//输入的那个月的天数

    String[]  dayArr = new String[42];
    String[] week ={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
    Scanner mScanner = new Scanner(System.in);

    System.out.println("请输入年份:范围(1900~)");
    newYear = mScanner.nextInt();
    System.out.println("请输入月份:范围(1~12)");
    newMounth = mScanner.nextInt();
    System.out.println("请输入哪号:范围(1~31)");
    newDay = mScanner.nextInt();

    //计算输入的那一年离1900年有几天
    for (int i = 1900; i < newYear; i++) {
        if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0) {
            yearOfDaySum += 366;
        }else {
            yearOfDaySum +=365;
        }
    }



    //计算输入的那一个月份离输入的年份的一月一日有几天
    for (int i = 1; i < newMounth; i++) {
        if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10
                || i == 12) {
            mounthOfDaySum += 31;
        }

        if (i == 4 || i == 6 || i == 9 || i == 11) {
            mounthOfDaySum += 30;
        }

        if (i == 2) {
            if ((newYear % 4 == 0 && newYear % 100 != 0) || newYear % 400 == 0) {
                mounthOfDaySum += 29;
            } else {
                mounthOfDaySum += 28;
            }
        }
    }


    dayOfDaySum = yearOfDaySum + mounthOfDaySum + newDay-1;//计算离1900年一月一日有多少天;
    dayOfWeek = (dayOfDaySum+1) % 7 ;//计算输入的那一天是星期几;为什么加1 是从1900年一月一日的前一天算起就是周日开始算
    mounthOfWeek = (yearOfDaySum + mounthOfDaySum+1) % 7 ;//计算输入那一天的哪一个月的1号是星期几;

    //判断输入的那个月的天数
            if (newMounth == 2) {
                if((newYear % 4 == 0 && newYear % 100 != 0)||newYear % 400 == 0){
                    day = 29;
                }else {
                    day = 28;
                }
            }else if(newMounth==4 ||newMounth==6 ||newMounth==9 ||newMounth==11 ){
                day = 30;
            }else {
                day = 31;
            }

            for (int i = 0; i < dayArr.length; i++) {
                dayArr[i] = "";
            }

            for (int i = 0; i < day; i++) {
                dayArr[i+mounthOfWeek] =(i+1)+"";
            }

    System.out.println(newYear+"年"+newMounth+"月"+" 离1900年一月一日有:"+(mounthOfDaySum+yearOfDaySum)+" 天");
    System.out.println(newYear+"年"+newMounth+"月"+newDay+"日 离1900年一月一日有:"+dayOfDaySum+" 天");
    System.out.println(newYear+"年"+newMounth+"月"+newDay+"日 是:"+week[dayOfWeek]);
    System.out.println(newYear+"年"+newMounth+"月1号 是:"+week[mounthOfWeek]);
    System.out.println("************************************************************");
    System.out.println(newYear+"年"+newMounth+"月");
    System.out.println("************************************************************");
    for (int i = 0; i < week.length; i++) {
        System.out.print(week[i]+"\t");
    }

    System.out.println();

    //输出那个月的排列情况
    for (int i = 0; i < dayArr.length; i++) {
        if (i % 7 == 0 && i != 0) {
            System.out.println();
        }
        System.out.print(dayArr[i]+"\t");
    }

    mScanner.close();
}

打印输出用的是一个数组,还可以用for循环。这里写图片描述

计算机科学与技术本科专业 Java课程设计任务书 题目: 日历记事本 学生姓名: 学号: 班级: 题目型:软件工程(R) 指导教师: 一. 题目简介 该设计要求设计一个带有日程提醒功能的日历。 通过该题目的设计,培养学生面向对象程序设计的思想,要求学生达到熟练掌握Java语言的基本知识和技能,基本掌握面向对象程序设计的基本思路和方法,能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。同时强调好的程序设计风格,提高解决实际问题的能力。 二. 主要任务 1、查阅文献资料,一般在5篇以上; 2、应用系统分析,建立该系统的功能模块框图以及界面的组织和设计; 3、分析系统中的各个实体及它们之间的关系包括属性和方法; 4、根据问题描述,设计系统的层次; 5、完成层次中各个的描述(包括属性和方法); 6、完成中各个成员函数的定义; 7、完成系统的应用模块; 8、完成系统的软件开发和测试工作; 9、撰写设计说明书; 10、做好答辩工作。 三. 主要内容、功能及技术指标 (一) 基本要求: 编写一个Applet小应用程序能够显示时间,当用户最小化Applet时,程序会 被挂起,当还原Applet时,程序又会恢复执行,同时Applet中应显示挂起和恢复的时间。 (二)系统要求: 1、要求利用面向对象的方法以及Java的编程思想来完成系统的设计; 2、要求在设计的过程中,建立清晰的层次; 3、在系统设计中要分析和定义各个,每个中要有各自的属性和方法; 4、在系统的设计中,要求运用面向对象的机制(继承、派生及多态性)来实现系统功能。 5、该系统的要求: (1)显示信息:用户可以向前翻页查询前一个月的日期,也可以向后翻页查询下一个月的日期。 (2)定时提醒:用户可以针对某一天来添加,删除和编辑这一天的日程提醒信息,当系统时间和提醒时间相吻合时,给出具有提示信息的对话框; (3)查询信息:用户可以查询到某个月的所有提示信息。 四. 提交的成果 1. 设计说明书一份,内容包括: 1) 中文摘要100字;关键词3-5个; 2) 序言; 3) 基本要求实现(包括程序流程图;部分代码;) 4) 系统要求实现 系统分析与设计(包括设计系统的层次,各个实体及它们之间的关系) 详细设计(包括各个的详细设计,如数据成员及成员函数的设计); 系统测试(包含测试方案、测试用例、测试结果及软件可靠性分析); 软件使用说明书(核心界面说明); 5)设计总结、参考文献、致谢等。 五. 主要参考文献 [1]曲朝阳,杨杰明等.Java程序设计. 北京: 清华大学出版社,2008.10 [2]耿祥以,张跃平.Java大学生实用教程. 北京: 电子工业出版社,2012.6 [3]明日科技.Java经典编程.北京:清华大学出版社,2012.10 [4]李尊朝,苏军.Java语言程序设计.北京:中国铁道出版社,2004.2 [5]王博. 面向对象的建模、设计技术与方法. 北京希望电脑公司,1990. 六. 各阶段时间安排(共2周): 周次 日期 内容 地点 第1周 星期一 教师讲解设计要求,准备参考资料 教室 星期二 分析系统,方案设计 实验室 星期三~五 编程 实验室 第2周 星期一~三 编程、调试程序 实验室 星期四 写设计书 实验室 星期五 答辩 实验室
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值