Java学习第一阶段-函数运用-日历功能

import java.util.Scanner;

public class P06 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner input = new Scanner(System.in);
        System.out.print("请输入一个年份(大于1900年):");
        int year=input.nextInt();
        while(year<1900){
            System.out.print("输入的年份有错误,请重新输入:");
            year=input.nextInt();
        }
        System.out.print("请输入一个月份:");
        int month=input.nextInt();
        while(month<1||month>12){
            System.out.print("输入的月份有错误,请重新输入:");
            month=input.nextInt();
        }

//        if (isLeapYear(year)) {
//            System.out.println(year+"年是闰年");
//        }
//        else{
//            System.out.println(year+"年不是闰年");
//        }
//
//        System.out.println(year+"年"+month+"月有"+getDaysOfMonth(year,month)+"天");
//
//        System.out.println(year+"年"+month+"月1号是该年的第"+getDayOfThisYear(year, month)+"天");
//
//        System.out.println("从1900年到"+year+"年之间(不包括该年)共经过"+getCrossDays(year)+"天");
//
        System.out.println("日\t一\t二\t三\t四\t五\t六");
        for (int i = 0; i <isDayOfWeek(year, month); i++) {
            System.out.print(" \t");
        }
        for (int i =1; i <=getDaysOfMonth(year, month); i++) {
            System.out.print(i+"\t");
            if (i==7-isDayOfWeek(year, month)||(i-7+isDayOfWeek(year, month))%7==0) {
                System.out.println();
            }
        }

    }
    /**
     * 判断是否是闰年
     * @param year
     * @return
     */
    public static boolean isLeapYear(int year){
        return year%4==0 && year%100!=0 || year%400==0;
    }
    /**
     * 返回该月有多少天
     * @param year
     * @param month
     * @return
     */
    public static int getDaysOfMonth(int year,int month){
        if (month==2) {
            if (isLeapYear(year)) {
                return 29;
            }
            else{
                return 28;
            }
        }
        else if((month<8 && month%2!=0)||(month>7&&month%2==0)){
            return 31;
        }
        else {
            return 30;
        }
    }
    /**
     * 返回该月一号是该年中的第几天
     * @param year
     * @param month
     * @return
     */
    public static int getDayOfThisYear(int year,int month){
        int sum=0;
        for (int i = 1; i <=month-1; i++) {
            sum+=getDaysOfMonth(year, i);
        }
        return sum+1;
    }
    /**
     * 计算从1900年到该年之间(不包括该年)共经过多少天
     * @param year
     * @return
     */
    public static int getCrossDays(int year){
        int sum=0;
        for (int i = 1900; i < year;i++) {
            for (int j = 1; j <=12; j++) {
                sum+=getDaysOfMonth(i, j);
            }
        }
        return sum;
    }
    /**
     * 计算该月1号是星期几(已知1900-1-1是星期一)
     * @param year
     * @param month
     * @return  返回(0~6)对应星期日至星期六
     */
    public static int isDayOfWeek(int year,int month){
        int sum=getCrossDays(year)+getDayOfThisYear(year, month);
        return sum%7;
    }
}
时间: 2024-07-28 16:58:51

Java学习第一阶段-函数运用-日历功能的相关文章

201671010140. 2016-2017-2 《Java程序设计》java学习第一周

   java学习第一周        本周是新学期的开端,也是新的学习进程的开端,第一次接触java这门课程,首先书本的厚度就给我一种无形的压力,这注定了,这门课程不会是轻松的,同时一种全新的学习方式:反转课堂,全新的尝试,忐忑的同时,又对这段新的学习路途充满了期待.         第一章,其实就是对java这门课程学习的一个铺垫和前期热身,第二章则是帮助我们了解并试着运用有关工具及了解java开发环境,通过阅读书本,相关课件,相关工具使用文件,同时在上机操作的过程中逐渐吸收知识.     

《软工》学习第一阶段优胜者

0. <软件工程>课程学习第一阶段优胜者:张振渊.林杰 (照片) 1. 另外分别赠送给上面两位 <我是一只IT小小鸟> 电子书两本.

Java 学习第一步-JDK安装和Java环境变量配置

Java学习第一步——JDK安装及Java环境变量配置 [原文] 2014-05-30 9:09  Java SE  阿超  9046 views Java作为当下很主流的编程语言,学习Java的朋友也越来越多了,作为一门面向对象的编程语言,Java也有着安全.高效等诸多有点.从TIOBE(TIOBE排行榜是根据互联网上有经验的程序员.课程和第三方厂商的数量,并使用搜索引擎(如Google.Bing.Yahoo!.百度)以及Wikipedia.Amazon.YouTube统计出排名数据,只是反映

Thinkphp3.2下导入所需的类库 同java的Import 本函数有缓存功能

* 导入所需的类库 同java的Import 本函数有缓存功能 * @param string $class 类库命名空间字符串 * @param string $baseUrl 起始路径 * @param string $ext 导入的文件扩展名 * @return boolean 测试案例站点:http://www.yixingmuban.com/      function import($class, $baseUrl = '', $ext='.class.php') { static

java学习第一个小项目--商品系统

是 对于java学习的前期,大约学了三周左右,我们在老师的带领下写了这个商品系统,功能比较简单,运用的都是java学习前期比较基础的知识 这是我对这个系统的名字与包和class文件的命名. 主要创建的是商品和生产者之间,Commodity和producer. 创建商品的基本属性(成员变量),以及一个无参钩爪方法 重点是Producer类中的编写. 按照序列号对商品进行升序排序 按照商品保质期的长短对商品进行排序 下面是主程序里面,加入自己创建的商品数据,对商品系统进行测试,看是否有一些功能没有实

Java学习第一天

今天是Java学习的第一天,感触很多,由于没有编程基础,所以开始听得有点云里雾里的,但好在洛昊老师讲得很耐心仔细,慢慢的也明白老师讲的内容了.      今天主要学习了Java语言的基础格式和用法,学习了“类”,并使用了基础的public class来实现hello world 的显示.后面在老师的演示下学习了使用Java语言运行“加减乘除”的运算.下午学习使用scanner来运算变量.最后自己编写了“英寸”单位转换为“厘米”单位的代码.      总之今天的学习让我对Java产生了更多的兴趣.

从.Net到Java学习第一篇

以前我常说,公司用什么技术我就学什么.可是对于java,我曾经一度以为“学java是不可能的,这辈子不可能学java的.”结果,一遇到公司转java,我就不得不跑路了,于是乎,回头一看N家公司交过社保,连我自己都有点惊讶,居然有这么多家公司了.对于java的梗,这是有历史缘由的,大二的时候同一大波人去蓝杰参加java培训,当时一个空心的菱形怎么也写不出来,我写来写去就是一个实心的砖头,结果培训老师实在看不下去了,就说:“唉!你不适合搞java”,我看了下一同前去的几个同学一下子就都写出来了,搞得

Java学习第一步——JDK安装及Java环境变量配置

Java作为当下很主流的编程语言,学习Java的朋友也越来越多了,作为一门面向对象的编程语言,Java也有着安全.高 效等诸多有点.从TIOBE(TIOBE排行榜是根据互联网上有经验的程序员.课程和第三方厂商的数量,并使用搜索引擎(如Google.Bing. Yahoo!.百度)以及Wikipedia.Amazon.YouTube统计出排名数据,只是反映某个编程语言的热门程度,并不能说明一门编程语言好 不好,或者一门语言所编写的代码数量多少.)排行榜来看,四月.五月的数据分析,Java语言仅次于

Java学习第一周

第一周学习了JDK的安装和环境的配置,初步了解了Java与C的不同之处,学习了Java的变量.基本数据类型.以及面向对象的基础.并且自行完成了一些简单Java程序的编写. (1)学习了为什么使用抽象类,使用抽象类是为了让程序员在继承时不会忘记复写, abstract class Printer { void open() { System.out.println("open "); } void close() { System.out.println("close"