【发布时间】:2018-09-30 20:53:13
【问题描述】:
我想测试 java 日历的星期几和月份的星期几。在过去的几个小时里,我一直在试图弄清楚测试课程。 我想输入星期几的值并测试星期几是否会按预期出现。任何帮助将不胜感激。 我想我需要每天、每月和每年喂它一次,但我不知道该怎么做。 我需要在这个编码练习中使用日历。
到目前为止我的代码
import java.util.Calendar;
import java.util.Scanner;
public class dayOfWeek {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
Scanner input = new Scanner (System.in);
//Input Day
System.out.println("Enter the Day (last two numbers) in number format:");
int day= input.nextInt( );
//Input Month
System.out.println("Enter the Month (last two numbers) in number format:");
int month= input.nextInt( );
//Input Year
System.out.println("Enter the Year (last two numbers) in number format:");
int year= input.nextInt( );
c.set(year, month, day);
//Display the day
int dayOfWeek = c.get(Calendar.DAY_OF_WEEK);
// Display Day of month
int dayOfMonth = c.get(Calendar.DAY_OF_MONTH);
//Print date in format
System.out.println(String.format("%d/%d/%d",day,month,year));
//if statement to print out day of week
if (dayOfWeek == Calendar.SUNDAY) {
System.out.println("Sunday");
}
else if (dayOfWeek == Calendar.MONDAY) {
System.out.println("Monday");
}
else if (dayOfWeek == Calendar.TUESDAY) {
System.out.println("Tuesday");
}
else if (dayOfWeek == Calendar.WEDNESDAY) {
System.out.println("Wednesday");
}
else if (dayOfWeek == Calendar.THURSDAY) {
System.out.println("Thursday");
}
else if (dayOfWeek == Calendar.FRIDAY) {
System.out.println("Friday");
}
else if (dayOfWeek == Calendar.SATURDAY) {
System.out.println("Saturday");
//close Scanner in
input.close( );
}
}
public static Object dayOfWeek(int i) {
// TODO Auto-generated method stub
return null;
}
}
【问题讨论】:
-
将逻辑移动到方法中并传入
PrintStream而不是硬编码System.out内联。 (并使用映射或数组而不是链接的ifs。) -
仅供参考,非常麻烦的旧日期时间类,例如
java.util.Date、java.util.Calendar和java.text.SimpleDateFormat,现在是 legacy,被 Java 8 中内置的 java.time 类所取代,之后。见Tutorial by Oracle。
标签: java eclipse unit-testing