知道今天是星期几,得出多少天后是星期几的方法。
初学java,大家帮我看下我写的这个方法是否有误,有哪些地方需要改进的,还需要考虑的哪些问题。
import javax.swing.JOptionPane;
public class DispalyWeek{
public static void main(String[] args){
String notice = "计算星期";
String message = "请输入当天是星期几,如:周一就输入1";
String message2 = "请输入天数,如:100";
String whatDayString = JOptionPane.showInputDialog(null, message, notice, JOptionPane.QUESTION_MESSAGE);
int whatDay = Integer.parseInt(whatDayString);
whatDay = whatDay <= 7 ? (whatDay > 0 ? whatDay : 7) : 7;
String numberOfDayString = JOptionPane.showInputDialog(null, message2, notice, JOptionPane.QUESTION_MESSAGE);
int numberOfDay = Integer.parseInt(numberOfDayString);
int newWhatDay;
if(numberOfDay <= 0){
newWhatDay = whatDay;
}else{
int temp = (whatDay + numberOfDay % 7) % 7;
newWhatDay = temp == 0 ? 7 : temp;
}
String output = "今天是星期" + whatDay +"', " + numberOfDay + "后是星期" + newWhatDay;
JOptionPane.showMessageDialog(null, output);
}
}

解决方案 »

  1.   

    没什么问题啊,正常运行啊!
    就是给类名换成DisplayWeek更好一点。
      

  2.   

    另外给你一简单算法
    这里的index就是你输入的值,只是我这里写死了,你可以变化,你也是没有加判断的,不过比你写的算法简单多了
    String date = " 一二三四五六日";
    int index = 7;
    index = index % 7 + 2;
    System.out.println(date.charAt(index));
      

  3.   

    谢谢的意见!用户输入判断是不可少的,就跟WEB开发必须验证表单一样。
    第一个问题应该类似这种错误:String a = "abc";int b = Integer.parseInt(a);
    第二个问题,是因为我用int来转换用户输入的值,范围有限。是这样的吧?
    这些判断、限制用户输入我会加上的。
      

  4.   

    你很热心,感谢!
    date.charAt这个方法我暂时还没学到这来,先记下了。
    我也感觉我那样算起来是麻烦了。呵呵。