练习题
用扫描器获取输入的时间(年月日时分),这个时间的格式是常用的格式,然后格式化这个时间,把格式化的时间输出到控制台,可以在控制台重复输入时间.格式化的时间参考企业微信聊天记录的展示时间.
代码演示如下:
package datetime;
import java.util.Scanner;
/**
* 测试程序
*/
public class DateTimeTest {
public static void main(String[] args) {
{
System.out.println("输入exit或者退出可退出程序");
System.out.println("日期和时间用空格进行隔开,日期的年月日用斜线/或点.或横杠-表示,时间用冒号:隔开");
System.out.println("标准的输入格式如下:");
System.out.println("1996/3/1 3:30");
System.out.println("下面开始程序测试:");
}
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个合法时间:");
while (scanner.hasNextLine()) {
String time = scanner.nextLine();
if (time.equals("exit") || time.equals("退出")) {
break;
}
/**
* 用工具类处理时间 datetimeFormat
* 格式化时间 INVALID_DATE 无效的日期
*/
String datetime=DateTime.datetimeFormat(time);
if(datetime.equals(DateTime.INVALID_DATE)) {
System.out.println("日期不合法,请重新输入");
continue;
}else if(datetime.equals(DateTime.INVALID_TIME)) {
System.out.println("时间不合法,请重新输入");
continue;
}
System.out.println("时间结果为:"+datetime);
}
System.out.println("程序退出,欢迎下次使用");
}
}
package datetime;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.MonthDay;
import java.time.Year;
import java.util.Arrays;
public class DateTime {
/**
* 无效的日期
*/
public static final String INVALID_DATE = "日期不合法";
/**
* 无效的时间
*/
public static final String INVALID_TIME = "时间不合法";
/**
* 无效的日期时间
*/
public static final String INVALED_DATETIME = "日期时间不合法";
/**
* 今天
*/
private static final String TODAY = "今天";
/**
* 明天
*/
private static final String TOMORROW = "明天";
/**
* 昨天
*/
private static final String YESTERDAY = "昨天";
/**
* 大月
*/
private static int[] BIG_MONTH = {
1, 3, 5, 7, 8, 10, 12 };
/**
* 小月
*/
private static int[] SMALL_MONTH = {
4, 6, 9, 11 };
/**
* 格式化的时间工具方法
*
* @param time 时间源
* @return 处理后的时间
*/
public static String datetimeFormat(String datetime) {
if (datetime == null || datetime.equals("") || !datetime.contains(" ") || !