创建Java程序以返回前一天、当前天和第二天
我正在为我的java编程入门课程创建最后一个程序,我需要一些帮助。当前日期和第二天的值打印不正确。我已经一遍又一遍地阅读了我的代码,但我无法理解为什么它不能正常运行。非常感谢您的任何帮助/建议 我必须遵循的本课程作业指导原则如下: 确定日期 B.打印日期 C.当天返回 第二天回来 E.前一天返回 F.通过将某些天添加到当前天来计算并返回该天。例如,如果当前日期是星期一,我们加上四天,则返回的日期是星期五。同样,如果今天是星期二,加上13天,返回的日期是星期一 G.添加适当的构造函数 H.编写方法的定义,以实现从A到G中定义的上课日操作 I.编写一个程序,在上课日测试各种操作 *编辑*** 我编写的这段新代码在我将日期定为星期一之前效果非常好。我遇到的问题是在前一天的方法中。我正在尝试添加if/else语句,但如果不收到outOfBounds异常错误,就无法正确编译它。在字符串数组中实现这一点的好方法是什么 我为完成此程序任务而编写的更新代码:创建Java程序以返回前一天、当前天和第二天,java,Java,我正在为我的java编程入门课程创建最后一个程序,我需要一些帮助。当前日期和第二天的值打印不正确。我已经一遍又一遍地阅读了我的代码,但我无法理解为什么它不能正常运行。非常感谢您的任何帮助/建议 我必须遵循的本课程作业指导原则如下: 确定日期 B.打印日期 C.当天返回 第二天回来 E.前一天返回 F.通过将某些天添加到当前天来计算并返回该天。例如,如果当前日期是星期一,我们加上四天,则返回的日期是星期五。同样,如果今天是星期二,加上13天,返回的日期是星期一 G.添加适当的构造函数 H.编写方法
public class Day {
int index;
static String[] days = {"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"};
public Day(String currentDay)
{
for(int i = 0; i < days.length; i++)
{
if(currentDay.equals(days[i]))
{
index = i;
return;
}
}
System.out.println("Days is invalid");
}
public void printDay()
{
System.out.println("The Day is " + days[index]);
}
public String returnDay()
{
return days[index];
}
public String returnNextDay()
{
return days[(index + 1 )% days.length];
}
public String returnPreviousDay()
{
if (days.length <= 1)
return days[index + 6];
else return days[(index - 1)%days.length];
}
public String whatDayIs(int i)
{
return days[(index + i)%days.length];
}
public static void main(String[] args)
{
Day day = new Day("Mon");
day.printDay();
System.out.println("Return Day: " + day.returnDay());
System.out.println("Next Day: " + day.returnNextDay());
System.out.println("Previous Day: " + day.returnPreviousDay());
System.out.println(day.whatDayIs(7));
}
公共课日{
整数指数;
静态字符串[]天={“周一”、“周二”、“周三”、“周四”、“周五”、“周六”、“周日”};
公众日(字符串当前日)
{
对于(int i=0;i 如果(days.length你试图重新发明一些已经存在的东西,这会让你的生活更艰难
只需将数据存储在日历对象中。使用dateAdd添加和删除日期,然后读取结果。您正试图重新发明一些已经存在的东西,这让您的生活更加艰难
只需将数据存储在日历对象中。使用dateAdd添加和删除日期,读取结果。首先,使用java命名约定。它使代码更清晰,更易于帮助
您的代码中有一些错误:
public Day setNameDay(String Day) {
Day = Days;
return this;
}
这里要做的是将Days
值保存在方法的参数Day
中,该参数实际上不起任何作用
public void nextDay() {
Day++;
if (Day <8)
Day = 1;
setDay(Day);
}
首先,使用java命名约定。它使您的代码更清晰,更易于帮助
您的代码中有一些错误:
public Day setNameDay(String Day) {
Day = Days;
return this;
}
这里要做的是将Days
值保存在方法的参数Day
中,该参数实际上不起任何作用
public void nextDay() {
Day++;
if (Day <8)
Day = 1;
setDay(Day);
}
“当前日期和第二天的值打印不正确。”
nextDay()
没有打印语句
public void nextDay()
{
Day++;
if (Day <8)
Day = 1;
setDay(Day);
}
<>代码>你有一个类<代码>天< /C>,int >代码>天> />代码>和string <代码>天>代码>对于任何正在阅读你的代码的人来说都是完全混淆的。我很惊讶你甚至能遵循它。考虑java命名约定:变量名从小写开始。
“当前日期和第二天的值打印不正确。”
nextDay()
没有打印语句
public void nextDay()
{
Day++;
if (Day <8)
Day = 1;
setDay(Day);
}
和你有一个类<代码>天> />代码>和<代码> >天> /代码>对于任何正在阅读你的代码的人来说都是完全混淆的。我很惊讶你甚至能遵循它。考虑java命名约定:变量名从小写开始。< /P> 你的代码充满了问题,问题来自阿德。ep不了解Java
例如,看看这个:
public Day setNameDay(String Day) {
Day = Days;
return this;
}
不好的不仅仅是命名。
你认为这个方法实际上有什么作用
我郑重建议您重新学习这门课程,并在出现参数传递等主题时予以注意。您的代码充满了问题,这些问题源于对Java的深刻理解
例如,看看这个:
public Day setNameDay(String Day) {
Day = Days;
return this;
}
不好的不仅仅是命名。
你认为这个方法实际上有什么作用
我郑重建议您重新学习本课程,并在出现参数传递等主题时予以注意。您可以使用带有日期的日历API。
试试下面的代码
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class CameoWebServiceClient {
public enum day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
}
public static void main(String[] args) {
// read day
int lDay = 5;
SimpleDateFormat date_format = new SimpleDateFormat("yyyyMMdd");
System.out.println(date_format.format(new Date()));
Calendar cal1 = date_format.getCalendar();
cal1.set(Calendar.DAY_OF_WEEK, lDay);
cal1 = setDay(cal1, lDay);
System.out.println(""+curDay(cal1));
System.out.println(""+nextDay(cal1));
System.out.println(""+prevDay(cal1));
}
public static Calendar setDay(Calendar cal1, int lDay) {
cal1.set(Calendar.DAY_OF_WEEK, (lDay));
return cal1;
}
public static String curDay(Calendar cal1) {
int i = cal1.get(Calendar.DAY_OF_WEEK)-1 ;
i = i < 0 ? 6:i;
return day.values()[i]+"";
}
public static String nextDay(Calendar cal1) {
int i = cal1.get(Calendar.DAY_OF_WEEK);
i = i > 6 ? 0:i;
return day.values()[i]+"";
}
public static String prevDay(Calendar cal1) {
int i = cal1.get(Calendar.DAY_OF_WEEK)-2;
i = i < 0 ? 6:i;
return day.values()[i]+"";
}
}
import java.text.simpleDataFormat;
导入java.util.Calendar;
导入java.util.GregorianCalendar;
公共类CameoWebService客户端{
公众普查日{
星期日、星期一、星期二、星期三、星期四、星期五、星期六
}
公共静态void main(字符串[]args){
//读书日
int lDay=5;
SimpleDataFormat日期\格式=新SimpleDataFormat(“yyyyMMdd”);
System.out.println(date\u format.format(new date());
Calendar cal1=日期\格式.getCalendar();
计算1.设置(日历日/周/日,lDay);
cal1=设定日(cal1,lDay);
系统输出打印项次(“+curDay(cal1));
系统输出打印项次(“+nextDay(cal1));
系统输出打印项次(“+prevDay(cal1));
}
公共静态日历设置日(日历cal1,int lDay){
计算1.设置(日历日/周(lDay));
返回cal1;
}
公共静态字符串curDay(日历cal1){
int i=cal1.get(日历。一周中的第二天)-1;
i=i<0?6:i;
返回日期。值()[i]+“”;
}
公共静态字符串nextDay(日历cal1){
int i=cal1.get(日历,一周中的一天);
i=i>6?0:i;
返回日期。值()[i]+“”;
}
公共静态字符串prevDay(日历cal1){
inti=cal1.get(日历.一周中的第二天)-2;
i=i<0?6:i;
返回日期。值()[i]+“”;
}
}
您可以使用带有日期的日历API。
请尝试以下代码。if(setday < 7) {
x = days[(setday + returnday )% days.length];
System.out.println("Return Day after "+String.valueOf(returnday)+ " days is " + x); }
else
System.out.println(" "); }
if(setday < 7) {
y = days[(setday + returnday + 1 )% days.length];
System.out.println("Next Day is " + y); }
else
System.out.println(" "); }
if(setday < 7) {
y = days[(setday + returnday - 1 )% days.length];
System.out.println("Previous Day is " + y); }
else
System.out.println(" "); } }
public String returnPreviousDay() {
return days[(index + days.length - 1) % days.length];
}