输出某一年的各个月份的天数、日期换算题目

JAVA35 输出某一年的各个月份的天数

描述
输入任意年份,输出该年份各月天数(请使用 Calendar 类中的方法)
 
输入描述:
任意年份(int类型整数)
 
输出描述:
x年1月:yy天
x年2月:yy天
x年3月:yy天
x年4月:yy天
x年5月:yy天
x年6月:yy天
x年7月:yy天
x年8月:yy天
x年9月:yy天
x年10月:yy天
x年11月:yy天
x年12月:yy天(x为输入的任意年份,yy为当月天数)

示例:

输入:2021
输出:
2021年1月:31天
2021年2月:28天
2021年3月:31天
2021年4月:30天
2021年5月:31天
2021年6月:30天
2021年7月:31天
2021年8月:31天
2021年9月:30天
2021年10月:31天
2021年11月:30天
2021年12月:31天

 
 

分析:

​ 1.Calendar 类的使用。

 
 

代码:

import java.util.Calendar;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);
        int year = console.nextInt();

        //write your code here......
        Calendar c=Calendar.getInstance();
        c.set(Calendar.YEAR,year);
        c.set(Calendar.MONTH,Calendar.MONDAY);
        int day1=c.getActualMaximum(Calendar.DAY_OF_MONTH);
        System.out.println(year+"年1月:"+day1+"天");

        c.set(Calendar.MONTH,Calendar.FEBRUARY);
        int day2=c.getActualMaximum(Calendar.DAY_OF_MONTH);
        System.out.println(year+"年2月:"+day2+"天");

        c.set(Calendar.MONTH,Calendar.MARCH);
        int day3=c.getActualMaximum(Calendar.DAY_OF_MONTH);
        System.out.println(year+"年3月:"+day3+"天");

        c.set(Calendar.MONTH,Calendar.APRIL);
        int day4=c.getActualMaximum(Calendar.DAY_OF_MONTH);
        System.out.println(year+"年4月:"+day4+"天");

        c.set(Calendar.MONTH,Calendar.MAY);
        int day5=c.getActualMaximum(Calendar.DAY_OF_MONTH);
        System.out.println(year+"年5月:"+day5+"天");

        c.set(Calendar.MONTH,Calendar.JUNE);
        int day6=c.getActualMaximum(Calendar.DAY_OF_MONTH);
        System.out.println(year+"年6月:"+day6+"天");

        c.set(Calendar.MONTH,Calendar.JULY);
        int day7=c.getActualMaximum(Calendar.DAY_OF_MONTH);
        System.out.println(year+"年7月:"+day7+"天");

        c.set(Calendar.MONTH,Calendar.AUGUST);
        int day8=c.getActualMaximum(Calendar.DAY_OF_MONTH);
        System.out.println(year+"年8月:"+day8+"天");

        c.set(Calendar.MONTH,Calendar.SEPTEMBER);
        int day9=c.getActualMaximum(Calendar.DAY_OF_MONTH);
        System.out.println(year+"年9月:"+day9+"天");

        c.set(Calendar.MONTH,Calendar.OCTOBER);
        int day10=c.getActualMaximum(Calendar.DAY_OF_MONTH);
        System.out.println(year+"年10月:"+day10+"天");

        c.set(Calendar.MONTH,Calendar.NOVEMBER);
        int day11=c.getActualMaximum(Calendar.DAY_OF_MONTH);
        System.out.println(year+"年11月:"+day11+"天");

        c.set(Calendar.MONTH,Calendar.DECEMBER);
        int day12=c.getActualMaximum(Calendar.DAY_OF_MONTH);
        System.out.println(year+"年12月:"+day12+"天");

    }
}

 
 

大佬代码:

利用循环。

import java.util.Calendar;
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);
        int year = console.nextInt();
 
        //获取Calendar的实例
        Calendar calendar=Calendar.getInstance();
        //循环遍历所有的月份
        for(int month=1;month<=12;month++){
            //设置年、月、日
            calendar.set(year,month,0);
            //输出对应年份各个月的天数
            System.out.println(year+"年"+month+"月:"+calendar.getActualMaximum(Calendar.DATE)+"天");
        }
 
    }
}

 
 
 

JAVA36 日期换算

描述
已知,纽约时间比北京时间慢12小时,请根据用户输入的北京时间输出相应的纽约时间,若用户输入错误的月份或日期等信息则将其顺加。例如用户输入2021 13 32 14 43 54则生成北京时间为:2022-02-01 14:43:54 纽约时间为:2022-02-01 02:43:54
 
输入描述:
一组字符串,年,月,日,时,分,秒用空格隔开,如果用户数据输入不正常,应输出“您输入的数据不合理”
 
输出描述:
北京时间为:年-月-日 时:分:秒
纽约时间为:年-月-日 时:分:秒

示例:

输入:2021 09 08 14 38 05
输出:
	北京时间为:2021-09-08 14:38:05
	纽约时间为:2021-09-08 02:38:05
输入:2021 09 08 14 38
输出:您输入的数据不合理

 

 

分析:

 
 

代码:

自己写的,没过!

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Scanner in = new Scanner(System.in);
        String str1 = in.nextLine();


        str1 = str1.replaceAll(" ", "");
        StringBuilder s = new StringBuilder(str1);

        //write your code here......

        s.insert(4, "-");
        s.insert(7, "-");
        s.insert(10, " ");
        s.insert(13, ":");
        s.insert(16, ":");

        //System.out.println(s.length());
        if (s.length() < 19) {
            System.out.println("您输入的数据不合理");
        }
        //System.out.println(s);
        Date date = sdf.parse(String.valueOf(s));
        System.out.println("北京时间为:" + sdf.format((date.getTime())));
        System.out.println("纽约时间为:" + sdf.format(date.getTime() -
                           (long)12 * 60 * 60 * 1000));

    }
}

 

 

大佬代码:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Scanner in = new Scanner(System.in);
        String str1 = in.nextLine();
 
        //write your code here......
 
        String[] arr = str1.split(" ");
        if(arr.length != 6){
            System.out.println("您输入的数据不合理");
        }else{
            String str = arr[0]+"-"+arr[1]+"-"+arr[2]+" "+arr[3]+":"+arr[4]+":"+arr[5];

            Date date = sdf.parse(str);
 
        System.out.println("北京时间为:" + sdf.format(date.getTime()));
        System.out.println("纽约时间为:" + sdf.format(date.getTime() - (long)12* 60 * 60 * 1000));
    	}
    }
}
  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值