这是小弟改写的日历代码,可是不能编译.求高手指点!谢谢 java日历表 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 很简单的{}匹配错误。放在myEclipse下面就一览无余了。import java.util.*;public class a4_26 { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("请输入年份: "); int year = in.nextInt(); System.out.println("请输入月份: "); int month = in.nextInt(); int sum = 0; for (int i = 1900; i < year; i++) { if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) { sum += 366; } else { sum += 365; } } for (int i = 1; i <= month; i++) { if (i == 2) { if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { sum += 29; } else { sum += 28; } } else { if (i == 4 || i == 6 || i == 9 || i == 11) { sum += 30; } else { sum += 31; } } } sum += 1; int wekday = sum % 7; System.out.println("日\t一\t二\t三\t四\t五\t六"); for (int i = 1; i <= wekday; i++) { System.out.print("\t"); } if (month == 4 || month == 6 || month == 9 || month == 11) { for (int i = 1; i <= 30; i++) { if (sum % 7 == 6) { System.out.print(i + "\n"); } else { System.out.print(i + "\t"); } sum++; } } else if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) { for (int i = 1; i <= 30; i++) { if (sum % 7 == 6) { System.out.print(i + "\n"); } else { System.out.print(i + "\t"); } sum++; } } else { if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { for (int i = 1; i <= 29; i++) { if (sum % 7 == 6) { System.out.print(i + "\n"); } else { System.out.print(i + "\t"); } sum++; } } else { for (int i = 1; i <= 28; i++) { if (sum % 7 == 6) { System.out.print(i + "\n"); } else { System.out.print(i + "\t"); } sum++; } } } }}经测试可以运行。 Scanner in = new Scanner(System.in); System.out.println("请输入年份: "); int year = in.nextInt(); System.out.println("请输入月份: "); int month = in.nextInt(); Calendar calendar = Calendar.getInstance(); calendar.set(year, month - 1, 1); System.out.println("日\t一\t二\t三\t四\t五\t六"); int size = calendar.get(Calendar.DAY_OF_WEEK) - 1; for (int i = 0; i < size; i++) { System.out.print("\t"); } Calendar end = Calendar.getInstance(); end.set(year, month, 1); end.add(Calendar.DATE, -1); while (calendar.before(end)) { if (calendar.get(Calendar.DAY_OF_WEEK) == 7) { System.out.print(calendar.get(Calendar.DATE)); System.out.println(); } else { System.out.print(calendar.get(Calendar.DATE) + "\t"); } calendar.add(Calendar.DATE, 1); } System.out.println(); for (int i = 1; i <= month; i++) 这行把那个=号去了就行了。 else if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) { for(int i=1;i<=31;i++){ if(sum%7==6){ System.out.print(i+"\n"); }else{ System.out.print(i+"\t"); } sum++; }应该是<=31吧 你才是高手啊! 谢了!能解释一下代码吗?如果可以的话,分就给你啦!sum表示的是某年某月1号到1900年1月1号之间所有的天数总和。因为这里的month是当前月份,即你需要显示的月份,所以你不需要把这个月的天数也加到sum中去。否则显示的就是下一个月份的了。 MyEclipse工具问题 学习jstatd的问题 关于system.in一个奇怪的问题 如何逐行读取文件内容,并找出其中是否存在要找的字符串(请高手帮忙给高分) 谁能帮我解决一下hibernate和spring如何集成 java写的socket通信程序,如何限制客户端的IP~ 小弟我急需10m免费jsp空间?请问哪里有提供?多谢!! JDK好像很慢,什么原因? 如何用Jbuilder写一个最简单的helloworld程序,具体步骤是什么 swing的中文显示 java根据一个文件替换另一个文件内容或linux脚本 关于netty4中的AttributeKey
Scanner in = new Scanner(System.in);
System.out.println("请输入年份: ");
int year = in.nextInt();
System.out.println("请输入月份: ");
int month = in.nextInt();
int sum = 0;
for (int i = 1900; i < year; i++) {
if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
sum += 366;
} else {
sum += 365;
}
}
for (int i = 1; i <= month; i++) {
if (i == 2) {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
sum += 29;
} else {
sum += 28;
}
} else {
if (i == 4 || i == 6 || i == 9 || i == 11) {
sum += 30;
} else {
sum += 31;
}
}
}
sum += 1;
int wekday = sum % 7;
System.out.println("日\t一\t二\t三\t四\t五\t六");
for (int i = 1; i <= wekday; i++) {
System.out.print("\t"); } if (month == 4 || month == 6 || month == 9 || month == 11) {
for (int i = 1; i <= 30; i++) {
if (sum % 7 == 6) {
System.out.print(i + "\n");
} else {
System.out.print(i + "\t");
}
sum++;
}
} else if (month == 1 || month == 3 || month == 5 || month == 7
|| month == 8 || month == 10 || month == 12) {
for (int i = 1; i <= 30; i++) {
if (sum % 7 == 6) {
System.out.print(i + "\n");
} else {
System.out.print(i + "\t");
}
sum++;
}
} else {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
for (int i = 1; i <= 29; i++) {
if (sum % 7 == 6) {
System.out.print(i + "\n");
} else {
System.out.print(i + "\t");
}
sum++;
}
} else {
for (int i = 1; i <= 28; i++) {
if (sum % 7 == 6) {
System.out.print(i + "\n");
} else {
System.out.print(i + "\t");
}
sum++;
}
}
}
}
}经测试可以运行。
Scanner in = new Scanner(System.in);
System.out.println("请输入年份: ");
int year = in.nextInt();
System.out.println("请输入月份: ");
int month = in.nextInt();
Calendar calendar = Calendar.getInstance();
calendar.set(year, month - 1, 1);
System.out.println("日\t一\t二\t三\t四\t五\t六");
int size = calendar.get(Calendar.DAY_OF_WEEK) - 1;
for (int i = 0; i < size; i++) {
System.out.print("\t");
}
Calendar end = Calendar.getInstance();
end.set(year, month, 1);
end.add(Calendar.DATE, -1);
while (calendar.before(end)) {
if (calendar.get(Calendar.DAY_OF_WEEK) == 7) {
System.out.print(calendar.get(Calendar.DATE));
System.out.println();
} else {
System.out.print(calendar.get(Calendar.DATE) + "\t");
}
calendar.add(Calendar.DATE, 1);
}
System.out.println();
这行把那个=号去了就行了。
{
for(int i=1;i<=31;i++){
if(sum%7==6){
System.out.print(i+"\n");
}else{
System.out.print(i+"\t");
}
sum++;
}
应该是<=31吧
sum表示的是某年某月1号到1900年1月1号之间所有的天数总和。
因为这里的month是当前月份,即你需要显示的月份,所以你不需要把这个月的天数也加到sum中去。否则显示的就是下一个月份的了。