当前位置: 主页 > JAVA语言

java闰年二月份天数-平年和闰年下半年的天数相等吗

发布时间:2023-03-12 12:58   浏览次数:次   作者:佚名

如果是刚接触或者刚学习javajava闰年二月份天数,练习一些基础的算法还是必须的,可以提升思维和语法的使用。

不必因看见大牛神乎其神的技术而对自己自卑,要知道每一个大牛都是从菜鸟勤奋过来的。所以,我们终究会成为和偶像一样的人。

今天,就罗列一些在Java初学阶段,最基础同时也最经典的案例。

1、编写程序判断某一个年份是否是闰年

package demo;

import java.util.Scanner;
/*判断闰年
    由用户输入任意一个年份,能被4整除但不能被100整除,或者能被400整除,是闰年。 
    要求判断一个年份是否为闰年。 
    要求输出:此年份是否是闰年
 */

public class demo {
    public static void main(String[] args{
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入年份:");
        int year = scanner.nextInt();

        /*方法一*/
        if((year % 4 ==0 && year % 100 !=0) || year%400 ==0){
            System.out.println("这个年份是闰年");
        }else{
            System.out.println("这个年份不是闰年");
        }

        /*方法二*/
        boolean isLeapYear = (year % 4 ==0 && year % 100 !=0) || year%400 ==0;
        String string = isLeapYear?year+"是闰年":year+"不是闰年";
        System.out.println(string);

    }
}

2、输出三个int数中的最大值

package demo;

import java.util.Scanner;

public class demo {
    public static void main(String[] args{
        Scanner scanner = new Scanner(System.in);
        System.out.println("请依次输入两个整数:a,b(以空格隔开)"); 
        int a = scanner.nextInt();
        int b = scanner.nextInt();
        int c = scanner.nextInt();
        scanner.close();
        /*方法一*/
        int d=(a>b)?a:b;
        int e=(d>c)?d:c;
        System.out.println("最大值为"+e);

        /*方法二*/
        if(a>b && a>c){
            System.out.println("最大值为"+a);
        }else if(b>c && b>a){
            System.out.println("最大值为"+b);
        }else if(c>b && c>a){
            System.out.println("最大值为"+c);
        }else{
            System.out.println("出现异常");
        }
    }
}

3、完成命令解析程序

描述:有一个命令解析程序,该程序提供三个功能选型供用户选择java闰年二月份天数,用户选择某功能后,程序在界面上输出用户所选择的的功能名称。

程序的交互如图:

平年和闰年下半年的天数相等吗_java闰年二月份天数_闰年和平年下半年的天数是一样的

package demo;

import java.util.Scanner;
/*
 * 有一个命令解析程序,该程序提供三个功能选型供用户选择,
 * 用户选择某功能后,程序在界面上输出用户所选择的的功能名称。
 * 
 * */

public class demo {
    public static void main(String[] args{
        Scanner scanner = new Scanner(System.in);
        System.out.println("请选择功能:1.显示全部记录  2.查询登录记录 0.退出");
        int command = scanner.nextInt();
        scanner.close();

        switch (command) {
        case 0:
            System.out.println("欢迎使用");
            break;
        case 1:
            System.out.println("显示全部记录……");
            break;
        case 2:
            System.out.println("查询登录记录……");
            break;

        default:
            System.out.println("输入错误!");

        }
    }
}

4、完成收银柜台收款程序

描述:编写一个收银柜台收款程序。根据单价、购买数量以及收款进行计算并输出应收金额和找零;当总价大于或者等于500,享受8折优惠。

控制台交互如下:

平年和闰年下半年的天数相等吗_java闰年二月份天数_闰年和平年下半年的天数是一样的

package demo;

import java.util.Scanner;
/*
 * 需求:
 * 编写一个收银柜台收款程序。根据单价、购买数量以及收款进行计算并输出应收金额和找零;
 * 当总价大于或者等于500,享受8折优惠。
 * 
  */

public class demo {
    public static void main(String[] args{
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入单价(¥):");
            double price = scanner.nextDouble();

            System.out.println("请输入数量:");
            double amount = scanner.nextDouble();

            System.out.println("请输入收款金额:");
            double count = scanner.nextDouble();

            double totalMoney = price*amount;

            if(totalMoney > 500){
                totalMoney = totalMoney*0.8;
            }

            double change = count - totalMoney;
            System.out.println("应收金额为:"+totalMoney + "找零为:"+change);

    }
}

5、输入年份和月份,输出天数

package demo;

import java.util.Scanner;
/*
     提示:
    1.需要判断是否是闰年,2月份的天数跟是否是闰年有关系;
    2.用switch-case判断每个月的天数

    */

public class demo{
    public static void main(String[] args{
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入年份:");
        int year = scanner.nextInt();
        System.out.println("请输入月份:");
        int month = scanner.nextInt();

        int dayNum = theDayNum(month); //先根据月份得出天数,如果是闰年,对2月份的天数重新获取

        if(isLeapYear(year)){
            if(month == 2){
                dayNum ++;  //如果是闰年,2月份增加一天
            }
            System.out.print(year + "是闰年,");
        }else{
            System.out.print(year + "不是闰年,");
        }

        System.out.println(year + "年" + month + "月份共有" + dayNum + "天");
    }

    /*判断是否是闰年
     * 能被4整除但不能被100整除,或者能被400整除,是闰年
     */

    public static  boolean  isLeapYear(int year{
        if((year % 4 ==0 && year % 100 !=0) || year%400 ==0){
            return true;
        }else{
            return false;
       }
    }

     /*判断天数*/
    public  static int theDayNum(int month{
        switch (month) {
        case 1:  
            return 31;  
        case 2:  
            return 28;  
        case 3:  
            return 31;  
        case 4:  
            return 30;  
        case 5:  
            return 31;  
        case 6:  
            return 30;  
        case 7:  
            return 31;  
        case 8:  
            return 31;  
        case 9:  
            return 30;  
        case 10:  
            return 31;  
        case 11:  
            return 30;  
        case 12:  
            return 31;  
        default:  
            System.out.println("对不起,您输入的月份有误!");  
            return 0
        }

    }
}

6、输出九九乘法表

package demo;

/* author:wendy
 * 问题:
 *         直接输出九九乘法表
 * */

public class demo {

    public static void main(String[] args{
        //i变量用于控制行数
        for(int i = 0; i <= 9; i++) {
            //j变量用于控制每行中参与计算的数值
            for(int j = 1; j <= i; j++) {
                System.out.print(j + "*" + i + "=" + i*j + "\t");
            }
            //每行输出之后需要换行
            System.out.println();
        }
    }
}

7、随机产生一个从0-100之间的整数,判断是否是质数

package demo;

import java.util.Random;

public class primeNum {
    public static void main(String[] args) {
        int num;
        Random random = new Random();
        num = random.nextInt(100);
        System.out.println("随机产生的数为:" + num);
        System.out.println(isPrime(num));
    }

    public static boolean isPrime(int num) {
        if(num < 2) {
            return false;
        }

        if(num == 2) {
            return true;
        }

        if(num % 2 == 0) {
            return false;
        }

        for(int i = 3; i <= Math.sqrt(num); i += 2) {
            if(num % i == 0) {
                return false;
            }
        }
        return true;
    }
}

8、查找数组最小值,并将数组扩容成新数组

package demo;

import java.util.Arrays;
import java.util.Random;
/*
 * author:wendy
 * 问题:随机产生10个从0-100之间的整数,并查找最小值;
 *     将该数组扩容成新数组,把最小值存在新数组的第一个位置。
 * 步骤:
 * 1.构造一个长度为10的数组,利用Random随机产生10个0-100之间的整数;
 * 2.寻找最小值,利用for循环
 * 3.扩容  利用Arrays.coprOf()构造新数组,将其长度设置为11
 * 4.遍历新数组,从后往前遍历,以此赋值,然后将2中找到的最小值存在数组的第一个
 * */

public class copyOf {

    public static void main(String[] args{
        int [] arr = new int[10];

        //随机产生10个 0-100之间的整数
        Random random = new Random();
        for(int i = 0; i < 10; i ++) {
            arr[i] = random.nextInt(100);
        }
        //打印数组的内容
        System.out.println("随机产生的数组为:" + Arrays.toString(arr));

        //查找最小的值
        int min = arr[0];
        for(int j = 1; j < 10; j ++) {
            if(min > arr[j]) {
                min = arr[j];
            }
        }
        System.out.println("该数组最小的值为:" + min);

        //扩容,将最小值存在扩容之后的第一个
        int [] newArr = Arrays.copyOf(arr, 11);

        //从后往前遍历,将前面的值赋给后面的值,然后将第一个的值赋为最小值min
        for(int k = newArr.length-1; k >=1; k --) {
            newArr[k] = newArr[k-1];
        }
        //将第一个的值赋为最小值min
        newArr[0] = min;
        //打印数组的内容
        System.out.println("扩容之后的数组为:"+ Arrays.toString(newArr));
    }

}