我刚学java,编了一个简单的程序为什么老是错误啊,求大神指教

import javax.swing.JOptionPane;

public class JudgeDate {
public static void main(String args) {
String dataYearString = JOptionPane.showInputDialog("Please enter the year: ");
int dataYear = Integer.parseInt(dataYearString);
String dataMonthString = JOptionPane.showInputDialog("Please enter the month: ");
int dataMonth = Integer.parseInt(dataMonthString);
String dataDayString = JOptionPane.showInputDialog("Please enter the day of the month: ");
int dataDay = Integer.parseInt(dataDayString);
int dataDate = dateJudging(dataYear,dataMonth,dataDay);
JOptionPane.showMessageDialog(null,"Day of the week is "+ dateConvert(dataDate));
}

public static int dateJudging( int dataYear,int dataMonth,int dataDay ) {
int q=0;
int m=0;
int j=0;
int k=0;
int h=0;
int y = dataYear;
/* set q */
if ( dataMonth == 2 ) {
if (( dataYear % 100 ) == 0 ){
if (( dataYear % 400 ) == 0 ) q = 29;
else q = 28;
}
else if (( dataYear % 4 ) == 0) q = 29;
else q = 28;
}
else if ((dataMonth == 1)||(dataMonth == 3)||(dataMonth == 5)||(dataMonth == 7)||(dataMonth == 8)||(dataMonth == 10)||(dataMonth == 12)) q = 31;
else if ((dataMonth == 4)||(dataMonth == 6)||(dataMonth == 9)||(dataMonth == 11)) q = 30;
/* set m and year */
if ((dataMonth == 1)||(dataMonth == 2)) {
m = dataMonth + 12;
y -= 1;
}
/** set j */
j = (int)(y / 100);
/** set k */
k = y % 100;
/** compute h */
h = (q + (int)(26 * (m + 1) / 10) + k + (int)(k / 4) + (int)(j / 4) + (5 * j)) % 7;
return h;
}
public static String dateConvert(int dataDate) {
String dateString;
switch (dataDate) {
case 0 : dateString = "Saturday";
break;
case 1 : dateString = "Sunday";
break;
case 2 : dateString = "Monday";
break;
case 3 : dateString = "Tuesday";
break;
case 4 : dateString = "Wedensday";
break;
case 5 : dateString = "Thursday";
break;
case 6 : dateString = "Friday";
break;
}
return dateString;
}
}

  给你改了一下,主要是错了两个地方

main(String[] args)   参数是个数组。

String dateString = "";  需要一个默认值。
import javax.swing.JOptionPane;
public class JudgeDate {
public static void main(String[] args) {
String dataYearString = JOptionPane
.showInputDialog("Please enter the year: ");
int dataYear = Integer.parseInt(dataYearString);
String dataMonthString = JOptionPane
.showInputDialog("Please enter the month: ");
int dataMonth = Integer.parseInt(dataMonthString);
String dataDayString = JOptionPane
.showInputDialog("Please enter the day of the month: ");
int dataDay = Integer.parseInt(dataDayString);
int dataDate = dateJudging(dataYear, dataMonth, dataDay);
JOptionPane.showMessageDialog(null, "Day of the week is "
+ dateConvert(dataDate));
}
public static int dateJudging(int dataYear, int dataMonth, int dataDay) {
int q = 0;
int m = 0;
int j = 0;
int k = 0;
int h = 0;
int y = dataYear;
/* set q */
if (dataMonth == 2) {
if ((dataYear % 100) == 0) {
if ((dataYear % 400) == 0)
q = 29;
else
q = 28;
} else if ((dataYear % 4) == 0)
q = 29;
else
q = 28;
} else if ((dataMonth == 1) || (dataMonth == 3) || (dataMonth == 5)
|| (dataMonth == 7) || (dataMonth == 8) || (dataMonth == 10)
|| (dataMonth == 12))
q = 31;
else if ((dataMonth == 4) || (dataMonth == 6) || (dataMonth == 9)
|| (dataMonth == 11))
q = 30;
/* set m and year */
if ((dataMonth == 1) || (dataMonth == 2)) {
m = dataMonth + 12;
y -= 1;
}
/** set j */
j = (int) (y / 100);
/** set k */
k = y % 100;
/** compute h */
h = (q + (int) (26 * (m + 1) / 10) + k + (int) (k / 4) + (int) (j / 4) + (5 * j)) % 7;
return h;
}
public static String dateConvert(int dataDate) {
String dateString = "";
switch (dataDate) {
case 0:
dateString = "Saturday";
break;
case 1:
dateString = "Sunday";
break;
case 2:
dateString = "Monday";
break;
case 3:
dateString = "Tuesday";
break;
case 4:
dateString = "Wedensday";
break;
case 5:
dateString = "Thursday";
break;
case 6:
dateString = "Friday";
break;
}
return dateString;
}
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-15

这位网友你好,你的错误有两个


1、public static void main(String[] args)

    main方法的参数里面应该是String[] 数组的格式。请仔细看你的格式写法

2、dateConvert  方法里面的String dateString 声明请改为

    String dateString = "";

我把我改完的文件上传了一份附件给你,请看一下

第2个回答  2013-04-15
1、开头的 public static void main(String args) { 改为 public static void main(String[] args) {
2、未初始化变量dateString,在 定义dateString时定义为String dateString = null;
然后编译执行就成功了。
这是你初学时编写的吗?这么强!
相似回答