从控制台输入一个日期,要求必须以09/30(月/日)的格式输入
2018-04-09 11:11
218 查看
实现思路
(1)控制台获取输入的日子。
(2)分析是否存在“/”以及它的位置是否正确。
(3)分析字符串长度是否超过了5个长度。
(4)分析月份是否大于12,天数是否大于31(不做精确判断,不区分月份应该有30或31天的情况)
(5)选做:精确判断月份应有30或31或者28的情况,如何格式不正确,实现重复输入。
实现步骤
(1)创建Date类,实现控制台录入数据。
(2)使用String对象的indexOf()方法及length()方法分别获取“/”的位置及字符串的长度。
(3)判断字符串中是否存在“/”或者“/”的位置是否正确以及字符串长度是否合法。
(4)格式合法后分别截取月份和日的部分转换格式,判断是否为合法日期。
代码提示,其中Integer.parseInt()是将字符串类型的变量转换为整数类型,以便后面进行日的合法性判断.
public class `Rw2{
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input= new Scanner(System.in);
while(true){
System.out.println("请输入你的生日:(02/27)");
String date=input.next();
if(date.indexOf("/")!=-1 && date.indexOf("/")==2 && date.length()==5){
String month = date.substring(0, 2);
int yue = Integer.parseInt(month);
int ri = Integer.parseInt(date.substring(date.indexOf("/")+1));
if(yue>=1&&yue<=12){
switch(yue){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if(ri>=1 && ri<=31){
System.out.println("你的生日是"+date);
System.exit(0);
}else{
System.out.println("请输入正确的日期");
break;
}
case 4:
case 6:
case 9:
case 11:
if(ri>=1 && ri<=30){
System.out.println("你的生日是"+date);
System.exit(0);
}else{
System.out.println("请输入正确的日期");
break;
}
default:
if(ri>=1 && ri<=28){
System.out.println("你的生日"+date);
System.exit(0);
}else{
System.out.println("请输入正确的东西");
break;
}
}
}else{
System.out.println("输入的“月”不正确");
}
}else{
System.out.println("输入的格式不正确");
}
} }
}
(1)控制台获取输入的日子。
(2)分析是否存在“/”以及它的位置是否正确。
(3)分析字符串长度是否超过了5个长度。
(4)分析月份是否大于12,天数是否大于31(不做精确判断,不区分月份应该有30或31天的情况)
(5)选做:精确判断月份应有30或31或者28的情况,如何格式不正确,实现重复输入。
实现步骤
(1)创建Date类,实现控制台录入数据。
(2)使用String对象的indexOf()方法及length()方法分别获取“/”的位置及字符串的长度。
(3)判断字符串中是否存在“/”或者“/”的位置是否正确以及字符串长度是否合法。
(4)格式合法后分别截取月份和日的部分转换格式,判断是否为合法日期。
代码提示,其中Integer.parseInt()是将字符串类型的变量转换为整数类型,以便后面进行日的合法性判断.
public class `Rw2{
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input= new Scanner(System.in);
while(true){
System.out.println("请输入你的生日:(02/27)");
String date=input.next();
if(date.indexOf("/")!=-1 && date.indexOf("/")==2 && date.length()==5){
String month = date.substring(0, 2);
int yue = Integer.parseInt(month);
int ri = Integer.parseInt(date.substring(date.indexOf("/")+1));
if(yue>=1&&yue<=12){
switch(yue){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if(ri>=1 && ri<=31){
System.out.println("你的生日是"+date);
System.exit(0);
}else{
System.out.println("请输入正确的日期");
break;
}
case 4:
case 6:
case 9:
case 11:
if(ri>=1 && ri<=30){
System.out.println("你的生日是"+date);
System.exit(0);
}else{
System.out.println("请输入正确的日期");
break;
}
default:
if(ri>=1 && ri<=28){
System.out.println("你的生日"+date);
System.exit(0);
}else{
System.out.println("请输入正确的东西");
break;
}
}
}else{
System.out.println("输入的“月”不正确");
}
}else{
System.out.println("输入的格式不正确");
}
} }
}
相关文章推荐
- 从键盘输入一个日期,格式为yyyy-M-d 要求计算该日期与1949年10月1日距离多少天(java)
- WinForm 中要求在textBox中输入的内容必须是日期格式yyyy-mm-dd,判断用户输入是否有效!
- 从键盘输入一个日期,格式为yyyy-M-d 要求计算该日期与1949年10月1日距离多少天
- 从键盘输入一个日期,格式为yyyy-M-d 要求计算该日期与1949年10月1日距离多少天
- WinForm 中要求在textBox中输入的内容必须是日期格式yyyy-mm-dd,判断用户输入是否有效!
- 输入一个日期,格式如:2010 10 24 ,判断这一天是这一年中的第几天。
- 黑马程序员—编写程序,该程序启动后用户可以按“yyyy-MM-dd”的格式输入一个日期, *程序计算这一天是星期几,并且计算出是一年中的第几天。 */
- 【程序30】 题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
- 编写一个程序,此程序在运行时要求用户输入一个 整数,代表某门课的考试成绩,程序接着给出“不及格”、“及格”、“中”、“良”、“优”的结论。要求程序必须具备足够的健壮性,不管用户输入什 么样的内容,都不会崩溃。
- Objective-C - 写一个函数实现求两个数的和(要求两个加数由用户从控制台输入)
- 写一个函数,输入int型,返回整数逆序后的字符串。如:输入123,返回“321”。 要求必须用递归,不能用全局变量,输入必须是一个参数,必须返回字符串
- 在控制台输入一段文本,将文本中的所有单词,存放到一个字符串数组中。 ( 要求占用内存最少)
- js替换全部,js检查输入的日期是否是一个正确的日期格式
- 汇编语言: 试编制一个程序:从键盘输入一行字符,要求第一个键入的字符必须是空格符,如不 是,则退出程序;如是,则开始接收键入的字符并顺序存放在首地址为buffer的缓冲区中(空 格符不存入),直到接收
- 要求从用户输入的多行文本中提取学生的姓名、学号及登录日期,并封装到 Student 类中作为类的私有属性。创建一个 Student 类型的对象数组,对学号进行 升序排序并输出
- 如何验证TextBox输入的是一个日期格式字符串
- 【程序30】 ArraySort.java 题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
- 对于表单要求用户输入数据必须是日期解决办法
- 编一个程序,从 string 对象中去掉标点符号。要求输入到程序的字符串必须含有标点符号,输出结果则是去掉标点符号后的 string 对象。
- 黑马程序员---------------------编写程序,该程序启动后用户可以按“yyyy-MM-dd”的格式输入一个日期, * 程序计算这一天是星期几,并且计算出是一年中的第几天