java代码出错,希望大神求解,小白学java。
publicclasszuoye12{publicstaticvoidmain(String[]args){intsum=0;for(intyear=1900;year<...
public class zuoye12{
public static void main(String[] args){
int sum=0;
for(int year=1900;year<=2015;year++){
if(year%4==0&&year&100!=0||year&400==0){
sum+=366;
}else{
sum+=365;
}
for(int month=1;month<=4;month++){
if(month==2){
if(2016%4==0&&2016%100!=0||2016%400=0){
sum+=29;
}else{
sum+=28;
}else{
if(month==4||month==6||month==9||month==11){
sum+=30;
}else{
sum+=31;
}
}
}
sum+=7;
System.out.println("1900年1月1日到2016年5月7日有"+sum+"天");
}
}
}
}
代码出错,没有检查出来,希望大神来帮忙解答,我是小白初学者。莫喷~ 展开
public static void main(String[] args){
int sum=0;
for(int year=1900;year<=2015;year++){
if(year%4==0&&year&100!=0||year&400==0){
sum+=366;
}else{
sum+=365;
}
for(int month=1;month<=4;month++){
if(month==2){
if(2016%4==0&&2016%100!=0||2016%400=0){
sum+=29;
}else{
sum+=28;
}else{
if(month==4||month==6||month==9||month==11){
sum+=30;
}else{
sum+=31;
}
}
}
sum+=7;
System.out.println("1900年1月1日到2016年5月7日有"+sum+"天");
}
}
}
}
代码出错,没有检查出来,希望大神来帮忙解答,我是小白初学者。莫喷~ 展开
7个回答
展开全部
题主你好,很高兴回答你的问题,我看到有些大神把你程序的错误说了出来,但是你没有必要写的这么麻烦去计算指定连个日期相差的天数。我简单写了个实现方法,你可以参考下,希望你在想问题的时候能尽量从效率上面下手。希望能帮到你。
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Zuoye12 {
public static void main(String[] args) throws ParseException {
String date1="1900-01-01";
String date2="2016-05-07";
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-mm-dd");
Date d1=sdf.parse(date1);
Date d2=sdf.parse(date2);
long daysBetween=(d2.getTime()-d1.getTime()+1000000)/(3600*24*1000);
System.out.println("1900-01-01 与 2016-05-07 相隔 "+daysBetween+" 天");
}
}
追问
多谢java大神程序猿的解答,但是我是初学者,还没有学这么多,只能用书面的知识来解答,感谢你的热心~
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好:你的第十四行改一下
}else{ 改为}else if(条件){;
你的出现两次else,程序报错呢
public class zuoye12 {
public static void main(String[] args){
int sum=0;
for(int year=1900;year<=2015;year++){
if(year%4==0&&year%100!=0||year%400==0){
sum+=366;
}else{
sum+=365;
}
for(int month=1;month<=4;month++){
if(month==2){
if(2016%4==0&&2016%100!=0||2016%400==0){
sum+=29;
}else if(条件){
sum+=28;
}else{
if(month==4||month==6||month==9||month==11){
sum+=30;
}else{
sum+=31;
}
}
}
sum+=7;
System.out.println("1900年1月1日到2016年5月7日有"+sum+"天");
}
}
}
}
追答
你好:
if(2016%4==0&&2016%100!=0||2016%400==0){这个就是个固定值,他给你的是警告,告诉你至二个每次都只能走固定的分支呢,不是变量的if条件句就有这个警告
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
改成这样就能用了,但是逻辑还有错误,多加了好多
public static void main(String[] args){
int sum=0;
for(int year=1900;year<=2015;year++){
if(year%4==0&&year%100!=0||year%400==0){
sum+=366;
}else{
sum+=365;
}
for(int month=1;month<=4;month++){
if(month==2){
if(2016%4==0&&2016%100!=0||2016%400==0){
sum+=29;
}else{
sum+=28;
}
}else{
if(month==4||month==6||month==9||month==11){
sum+=30;
}else{
sum+=31;
}
}
sum+=7;
}
}
System.out.println("1900年1月1日到2016年5月7日有"+sum+"天");
}
public static void main(String[] args){
int sum=0;
for(int year=1900;year<=2015;year++){
if(year%4==0&&year%100!=0||year%400==0){
sum+=366;
}else{
sum+=365;
}
for(int month=1;month<=4;month++){
if(month==2){
if(2016%4==0&&2016%100!=0||2016%400==0){
sum+=29;
}else{
sum+=28;
}
}else{
if(month==4||month==6||month==9||month==11){
sum+=30;
}else{
sum+=31;
}
}
sum+=7;
}
}
System.out.println("1900年1月1日到2016年5月7日有"+sum+"天");
}
追问
谢谢~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是在这个地方少了一个括号
}else{
sum+=28;
}else{
}else{
sum+=28;
}else{
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询