每日小语
不要再将头埋在虚无缥缈的沙堆里;反之,还是逍遥自在地顶着那个能赋予大地意义的现实的头颅。 ——尼采
思考
输入,然后判断,最后还需要规范一下,然后输出,保证time大于等于0小于等于60即可
自己敲写
不会分割时间呜呜呜,然后找到了charat这个关键字,虽然只能读取一个但也方便我的敲写
//用户从键盘输入一个时间,判断其合理性,如果合理,就输出该时间,否则,输出“不合理的时间”。(例如:输入:18:1:2 输出18:01:02)(JudgeTheTime7)
import java.util.Scanner;
public class judgeTheTime7
{
@SuppressWarnings("resource")
public static void main(String[] args)
{
//输入
Scanner scanner = new Scanner(System.in);
System.out.print("请输入时间(格式为时:分:秒)(如果为个位数字,前面加0):");
String a = scanner.nextLine();
//判断标准格式
if(a.length()!=9)//length后面要加括号
{
System.out.println("不合理的时间");
return;
}
//分割时间
//如何把字符串转换为数字,判断第一个数是否大于6
char hour1 = a.charAt(0);
char minute1 = a.charAt(3);
char second1 = a.charAt(6);
char hour2 = a.charAt(1);
char minute2 = a.charAt(4);
char second2 = a.charAt(7);
//把char转换为数字
int hours1 = hour1 - '0';
int minutes1 = minute1 - '0';
int seconds1 = second1 - '0';
int hours2 = hour2 - '0';
int minutes2 = minute2 - '0';
int seconds2 = second2 - '0';
//只判断第一位数据是否大于6
if(hours1>6||minutes1>6||seconds1>6)
{
System.out.println("不合理的时间");
}
else if(hours1==6&&hours2>0)//一定是双等于号!
{
System.out.println("不合理的时间");
}
else if(minutes1==6&&minutes2>0)//一定是双等于号!
{
System.out.println("不合理的时间");
}
else if(seconds1==6&&seconds2>0)//一定是双等于号!
{
System.out.println("不合理的时间");
}
else
{
System.out.println(a);
}
}
}
结果运行的时候就不对劲了。。。原来是第一个敲成9了。。应该是八。
我突然又发现了一个问题,那个小时应该是最大为2!
多次尝试后这个似乎没有问题了
//用户从键盘输入一个时间,判断其合理性,如果合理,就输出该时间,否则,输出“不合理的时间”。(例如:输入:18:1:2 输出18:01:02)(JudgeTheTime7)
import java.util.Scanner;
public class judgeTheTime7
{
@SuppressWarnings("resource")
public static void main(String[] args)
{
//输入
Scanner scanner = new Scanner(System.in);
System.out.print("请输入时间(格式为时:分:秒)(采用24小时)(如果为个位数字,前面加0):");
String a = scanner.nextLine();
//判断标准格式
if(a.length()!=8)//length后面要加括号
{
System.out.println("不合理的时间");
return;
}
//分割时间
//如何把字符串转换为数字,判断第一个数是否大于6
char hour1 = a.charAt(0);
char minute1 = a.charAt(3);
char second1 = a.charAt(6);
char hour2 = a.charAt(1);
char minute2 = a.charAt(4);
char second2 = a.charAt(7);
//把char转换为数字
int hours1 = hour1 - '0';
int minutes1 = minute1 - '0';
int seconds1 = second1 - '0';
int hours2 = hour2 - '0';
int minutes2 = minute2 - '0';
int seconds2 = second2 - '0';
//只判断第一位数据是否大于6
if(hours1>2||minutes1>6||seconds1>6)
{
System.out.println("不合理的时间");
}
else if(hours1==2&&hours2>4)//一定是双等于号!
{
System.out.println("不合理的时间");
}
else if(hours1==2&&hours2==4&&minutes1!=0)//一定是双等于号!
{
System.out.println("不合理的时间");
}
else if(hours1==2&&hours2==4&&minutes2!=0)//一定是双等于号!
{
System.out.println("不合理的时间");
}
else if(hours1==2&&hours2==4&&seconds1!=0)//一定是双等于号!
{
System.out.println("不合理的时间");
}
else if(hours1==2&&hours2==4&&seconds2!=0)//一定是双等于号!
{
System.out.println("不合理的时间");
}
else if(minutes1==6&&minutes2>0)//一定是双等于号!
{
System.out.println("不合理的时间");
}
else if(seconds1==6&&seconds2>0)//一定是双等于号!
{
System.out.println("不合理的时间");
}
else
{
System.out.println(a);
}
}
}
又发现问题了。。。
终极代码
//用户从键盘输入一个时间,判断其合理性,如果合理,就输出该时间,否则,输出“不合理的时间”。(例如:输入:18:1:2 输出18:01:02)(JudgeTheTime7)
import java.util.Scanner;
public class judgeTheTime7
{
@SuppressWarnings("resource")
public static void main(String[] args)
{
//输入
Scanner scanner = new Scanner(System.in);
System.out.print("请输入时间(格式为时:分:秒)(采用24小时)(如果为个位数字,前面加0):");
String a = scanner.nextLine();
//判断标准格式
if(a.length()!=8)//length后面要加括号
{
System.out.println("不合理的时间");
return;
}
//分割时间
//如何把字符串转换为数字,判断第一个数是否大于6
char hour1 = a.charAt(0);
char minute1 = a.charAt(3);
char second1 = a.charAt(6);
char hour2 = a.charAt(1);
char minute2 = a.charAt(4);
char second2 = a.charAt(7);
//把char转换为数字
int hours1 = hour1 - '0';
int minutes1 = minute1 - '0';
int seconds1 = second1 - '0';
int hours2 = hour2 - '0';
int minutes2 = minute2 - '0';
int seconds2 = second2 - '0';
//只判断第一位数据是否大于6
if(hours1>2||minutes1>5||seconds1>5)//是5不是6
{
System.out.println("不合理的时间");
}
else if(hours1==2&&hours2>4)//一定是双等于号!
{
System.out.println("不合理的时间");
}
else if(hours1==2&&hours2==4&&minutes1!=0)//一定是双等于号!
{
System.out.println("不合理的时间");
}
else if(hours1==2&&hours2==4&&minutes2!=0)//一定是双等于号!
{
System.out.println("不合理的时间");
}
else if(hours1==2&&hours2==4&&seconds1!=0)//一定是双等于号!
{
System.out.println("不合理的时间");
}
else if(hours1==2&&hours2==4&&seconds2!=0)//一定是双等于号!
{
System.out.println("不合理的时间");
}
else if(minutes1==6&&minutes2>0)//一定是双等于号!
{
System.out.println("不合理的时间");
}
else if(seconds1==6&&seconds2>0)//一定是双等于号!
{
System.out.println("不合理的时间");
}
else
{
System.out.println(a);
}
}
}
不知道还有没有问题,感觉好像没有了,撒花花~