定义一个时间类,提供设定时间和显示时间的方法,其中设定时间的方法需要校验数据的正确性,并在main方法中验证。如题:我先说下我怎么想的吧-,-望大神指正设定时间:年0-9999比大小,true就通过,月0-12比大小,true就通过,根据月判断,1,3,5,7,8,10,12,day1-31,break;4,6,8,11,day1-30,break; 2,day判断闰年然后再1-29和1-28然后,我发现读不出来,就想通过前存一下再然后年和月出来了,日死活出不来我小崩溃奈何题目比较多,请教下大神们!
其实笔记记了三本我也不知道正则表达式记到哪本本子上了然后就完全不会用-0 -
明早还要培训,19天了这些日子,都在看基础的视频和书本比较多,对于代码也只是看得多,写的少基础差不多学完了,准备反复看笔记和写代码,希望我能进步,也希望各位大神能解答这个问题!

解决方案 »

  1.   

    先谢谢支持啦我已经拆解后判断了,不知道是什么问题日子存不进去,我是new了下,然后用setDay(参数)存储的判断通过的地方都存储了年和月倒是可以存进去
      

  2.   

    用Calendar这个对象吧。有函数:set(int year, int month, int date, int hourOfDay, int minute, int second) 
    最后:Date date = calendar.getTime();
      

  3.   

    package cn.neusoft.corejava0619;import java.util.Scanner;public class Time {
    private int year;
    private int month;
    private int day;
    //set、get代码
    public int getYear() {
    return year;
    }
    public void setYear(int year) {
    this.year = year;
    }
    public int getMonth() {
    return month;
    }
    public void setMonth(int month) {
    this.month = month;
    }
    public int getDay() {
    return day;
    }
    public void setDay(int day) {
    this.day = day;
    }
    public void setTime()
    {
    Scanner sc=new Scanner(System.in);
    //设置年
    System.out.println("请输入你要设置的年份!");
    String year=sc.nextLine().trim();
    int a1=Integer.parseInt(year);
    int a=a1/1000;
    if(a<=9&&a>=0)
    {
    System.out.println("设置成功!");
    Time time=new Time();
    this.year=a1;
    time.setYear(a1);
    }else
    {
    System.out.println("输入不正确,请重新输入");
    }

    //设置月
    System.out.println("请输入你要设置的月份!");
    String month=sc.nextLine().trim(); int b=Integer.parseInt(month);
    if(b<=12&&b>=1)
    {
    System.out.println("设置成功!");
    this.month=b;
    Time time=new Time();
    time.setMonth(b);
    }else
    {
    System.out.println("输入不正确,请重新输入!");

    } //设置日
    System.out.println("请输入你要设置的日子!");
    String day=sc.nextLine().trim();
    int c=Integer.parseInt(day);
    if(b==1||b==3||b==5||b==7||b==8||b==10||b==12)
    {
    if(c>=1&&c<=31)
    {

    System.out.println("设置成功!");
    Time time=new Time();
    time.setDay(c);

    }else{
    System.out.println("输入不正确,请重新输入!");

    }
    }
    else if(b==4||b==6||b==9||b==11)
    {
    if(c>=1&&c<=30)
    {
    System.out.println("设置成功!");
    Time time=new Time();
    time.setDay(c);

    }else{
    System.out.println("输入不正确,请重新输入!");

    }
    }
    else if(b==2)
    {
    int d=Integer.parseInt(year);
    if(d%4==0&&d%400==0&&d%100!=0)
    {
    if(c>=1&&c<=29)
    {

    System.out.println("设置成功!");
    Time time=new Time();
    time.setDay(c);

    }else
    {
    System.out.println("输入不正确,请重新输入");

    }
    }else
    {
    if(c>=1&&c<=28)
    {

    System.out.println("设置成功!");
    Time time=new Time();
    time.setDay(c);

    }else
    {
    System.out.println("输入不正确,请重新输入!");

    }
    }
    }
    }

    public void showTime()
    {
    Time time=new Time();
    time.setTime();
    this.year=time.getYear();
    this.month=time.getMonth();
    this.day=time.getDay();
    System.out.println(year+"-"+month+"-"+day);
    }
    public static void main(String[] args) {
    Time time=new Time();
    time.showTime();
    }}
    我写的代码我很菜的写成这样不容易了