java基础题,关于输入月日来判断星座的,求教

java基础题,关于输入月日来判断星座的,求教,第1张

import java.text.ParseException

import java.text.SimpleDateFormat

import java.util.Calendar

import java.util.Date

import java.util.Scanner

public class Test {

    public static void main(String[] args) throws ParseException {

        Scanner scanner = new Scanner(System.in)

        

        // 只输入月、日,此代码未校验月、日输入是否合理,比如2月30

        System.out.print("请输入你的出生月份")

        int month = scanner.nextInt()

        System.out.print("请输入你的出生日期")

        int day = scanner.nextInt()

        System.out.print("你的星座是:")

        

        // 通过输入完整日期的方式判断,可以自动处理不合理日期,比如2月30

        // SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd")

        // System.out.print("请输入你的出生日期(形如2018-02-03):")

        // Date birthday = dateFormat.parse(scanner.nextLine())

        //

        // Calendar calendar = Calendar.getInstance()

        // calendar.setTime(birthday)

        // int month = calendar.get(Calendar.MONTH) + 1

        // int day = calendar.get(Calendar.DAY_OF_MONTH)

        // System.out.print("你的生日是 :" + dateFormat.format(birthday) + "\r\n你的星座是:")

        scanner.close()

        switch (month) {

        case 1:

            if (day < 22)

                System.out.println("摩羯座")

            else

                System.out.println("水瓶座")

            break

        case 2:

            if (day < 22)

                System.out.println("水瓶座")

            else

                System.out.println("双鱼座")

            break

        case 3:

            if (day < 22)

                System.out.println("双鱼座")

            else

                System.out.println("白羊座")

            break

        case 4:

            if (day < 22)

                System.out.println("白羊座")

            else

                System.out.println("金牛座")

            break

        case 5:

            if (day < 22)

                System.out.println("金牛座")

            else

                System.out.println("双子座")

            break

        case 6:

            if (day < 22)

                System.out.println("双子座")

            else

                System.out.println("巨蟹座")

            break

        case 7:

            if (day < 22)

                System.out.println("巨蟹座")

            else

                System.out.println("狮子座")

            break

        case 8:

            if (day < 22)

                System.out.println("狮子座")

            else

                System.out.println("处女座")

            break

        case 9:

            if (day < 22)

                System.out.println("处女座")

            else

                System.out.println("天枰座")

            break

        case 10:

            if (day < 22)

                System.out.println("天枰座")

            else

                System.out.println("天蝎座")

            break

        case 11:

            if (day < 22)

                System.out.println("天蝎座")

            else

                System.out.println("射手座")

            break

        case 12:

            if (day < 22)

                System.out.println("射手座")

            else

                System.out.println("摩羯座")

        }

    }

}

既然不允许用其他的方式,那就直接上代码吧....

public static void main(String[] args) {

        int point = -1

        String[] str = {"白羊","金牛","双子","巨蟹","狮子","处女","天平","天蝎","射手","摩羯","水瓶","双鱼"}

        SimpleDateFormat sdf = new SimpleDateFormat("MM-dd")

        System.out.println("请输入一个日期,格式为MM-dd,例如:8-9")

        Scanner scan = new Scanner(System.in)

        Date d = null

        while (true) {

            try {

                String input = scan.next()

                d = sdf.parse(input)

                break

            } catch (Exception ex) {

                System.out.println("请输入正确的日期格式,例如:08-09")

            }

        }

        //格式化日期,将日期转成**.**的格式,比如1月1日转成1.01

        Double date = Double.parseDouble((d.getMonth() + 1)

            + "." + String.format("%02d", d.getDate()))

        if (3.21 <= date && 4.19 >= date) {

            point = 0

        } else if (4.20 <= date && 5.20 >= date) {

            point = 1

        } else if (5.21 <= date && 6.21 >= date) {

            point = 2

        } else if (6.22 <= date && 7.22 >= date) {

            point = 3

        } else if (7.23 <= date && 8.22 >= date) {

            point = 4

        } else if (8.23 <= date && 9.22 >= date) {

            point = 5

        } else if (9.23 <= date && 10.23 >= date) {

            point = 6

        } else if (10.24 <= date && 11.22 >= date) {

            point = 7

        } else if (11.23 <= date && 12.21 >= date) {

            point = 8

        } else if (12.22 <= date && 12.31 >= date) {

            point = 9

        } else if (1.01 <= date && 1.19 >= date) {

            point = 9

        } else if (1.20 <= date && 2.18 >= date) {

            point = 10

        } else if (2.19 <= date && 3.20 >= date) {

            point = 11

        }

        if(point == -1) {

            System.out.println("你真的是地球人么....")return

        }

        System.out.println(String.format(

            "找到啦!o^ ^o,你的星座是%s.", str[point]))

定义一个String类;

使用接收格式为(xx/xx)

使用Stringbuffer分割为两个int类型

month(月) day(日)

switch(month){

case 1:

if(day<=23){

system.out.print("....星座");

}else{

system.out.print("....星座");

}

black;

…………

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11988224.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存