java 中的一个实现输入年份和月份 显示日历的程序请问那里错了?
importjava.util.*;publicclassvb{publicstaticvoidmain(String[]args){Scannersc=newScann...
import java.util.*;
public class vb{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.println("请输入年份");
int yyy=sc.nextInt();
System.out.println("请输入月份");
int mmm=sc.nextInt();
boolean run=((yyy%4==0 && yyy%100!=0)||(yyy%400==0));
//System.out.print(run);
int days=0; int yeardays=0; int sumdays=0;
for(int i=1900;i<yyy;i++){ //计算到输入年份的天数
if((i%4==0 && i%100!=0)||(i%400==0)){
yeardays+=366;
}else{
yeardays+=365;
}
}
for(int i=1;i<mmm;i++){ //计算到输入月份的天数
switch(mmm){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days+=31;
break;
case 2:
if(run){
days+=29;
}else{
days+=28;
}break;
default:
days+=30;
break;
}
}
System.out.println("\n\n\n星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t");
sumdays=days+yeardays;
System.out.println(sumdays);
int zhe=(sumdays%7);
System.out.println(zhe);
//if(zhe==7)zhe=0;
for(int z=1;i<zhe;z++){
System.out.print("*\t");
}
for(int i=0;i<=mmm;i++){
switch(mmm){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days=31;
break;
case 2:
if(run){
days=29;
}else{
days=28;
}break;
default:
days=30;
}
}
for(int i=1,k=0;i<=days;k++,i++){
System.out.print(i+"\t");
if((k+zhe)==8){
System.out.println();
k=0;
}
}
}
} 展开
public class vb{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.println("请输入年份");
int yyy=sc.nextInt();
System.out.println("请输入月份");
int mmm=sc.nextInt();
boolean run=((yyy%4==0 && yyy%100!=0)||(yyy%400==0));
//System.out.print(run);
int days=0; int yeardays=0; int sumdays=0;
for(int i=1900;i<yyy;i++){ //计算到输入年份的天数
if((i%4==0 && i%100!=0)||(i%400==0)){
yeardays+=366;
}else{
yeardays+=365;
}
}
for(int i=1;i<mmm;i++){ //计算到输入月份的天数
switch(mmm){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days+=31;
break;
case 2:
if(run){
days+=29;
}else{
days+=28;
}break;
default:
days+=30;
break;
}
}
System.out.println("\n\n\n星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t");
sumdays=days+yeardays;
System.out.println(sumdays);
int zhe=(sumdays%7);
System.out.println(zhe);
//if(zhe==7)zhe=0;
for(int z=1;i<zhe;z++){
System.out.print("*\t");
}
for(int i=0;i<=mmm;i++){
switch(mmm){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days=31;
break;
case 2:
if(run){
days=29;
}else{
days=28;
}break;
default:
days=30;
}
}
for(int i=1,k=0;i<=days;k++,i++){
System.out.print(i+"\t");
if((k+zhe)==8){
System.out.println();
k=0;
}
}
}
} 展开
3个回答
展开全部
for(int z=1;i<zhe;z++){
System.out.print("*\t");
}
这里错了 你没发现复制进去就报错了么
是int z=1;z<zhe
System.out.print("*\t");
}
这里错了 你没发现复制进去就报错了么
是int z=1;z<zhe
追问
额,那个本来是i的 我想问的是它为什么排版和实际不同步 那里错了
最后一for是控制排版的 zhe是控制 开始空 格
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
import java.util.Scanner;
public class vb {
@SuppressWarnings("resource")
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.println("请输入年份");
int yyy=sc.nextInt();
System.out.println("请输入月份");
int mmm=sc.nextInt();
boolean run=((yyy%4==0 && yyy%100!=0)||(yyy%400==0));
//System.out.print(run);
int days=0;
int yeardays=0;
int sumdays=0;
for(int i=1900;i<yyy;i++){ //计算到输入年份的天数
if((i%4==0 && i%100!=0)||(i%400==0)){
yeardays+=366;
}else{
yeardays+=365;
}
}
for(int i=1;i<mmm;i++){ //计算到输入月份的天数
switch(mmm){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days+=31;
break;
case 2:
if(run){
days+=29;
}else{
days+=28;
}break;
default:
days+=30;
break;
}
}
for(int z=1;z<mmm;z++){
System.out.print("*\t");
}
for(int i=0;i<=mmm;i++){
switch(mmm){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days=31;
break;
case 2:
if(run){
days=29;
}else{
days=28;
}break;
default:
days=30;
}
}
for(int i=1,k=0;i<=days;k++,i++){
System.out.print(i+"\t");
if((k+days)==8){
System.out.println();
k=0;
}
}
System.out.println("\n\n\n星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t");
sumdays=days+yeardays;
System.out.println(sumdays);
int zhe=(sumdays%7);
System.out.println(zhe);
//if(zhe==7)zhe=0;
}
}
(代码改的没错了,但是功能不知道你要做什么,写得太乱了,不爱看了,我想应该是在屏幕上输入一个年份,先看是不是瑞年,然后判断一下他是星期几吧)
public class vb {
@SuppressWarnings("resource")
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.println("请输入年份");
int yyy=sc.nextInt();
System.out.println("请输入月份");
int mmm=sc.nextInt();
boolean run=((yyy%4==0 && yyy%100!=0)||(yyy%400==0));
//System.out.print(run);
int days=0;
int yeardays=0;
int sumdays=0;
for(int i=1900;i<yyy;i++){ //计算到输入年份的天数
if((i%4==0 && i%100!=0)||(i%400==0)){
yeardays+=366;
}else{
yeardays+=365;
}
}
for(int i=1;i<mmm;i++){ //计算到输入月份的天数
switch(mmm){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days+=31;
break;
case 2:
if(run){
days+=29;
}else{
days+=28;
}break;
default:
days+=30;
break;
}
}
for(int z=1;z<mmm;z++){
System.out.print("*\t");
}
for(int i=0;i<=mmm;i++){
switch(mmm){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days=31;
break;
case 2:
if(run){
days=29;
}else{
days=28;
}break;
default:
days=30;
}
}
for(int i=1,k=0;i<=days;k++,i++){
System.out.print(i+"\t");
if((k+days)==8){
System.out.println();
k=0;
}
}
System.out.println("\n\n\n星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t");
sumdays=days+yeardays;
System.out.println(sumdays);
int zhe=(sumdays%7);
System.out.println(zhe);
//if(zhe==7)zhe=0;
}
}
(代码改的没错了,但是功能不知道你要做什么,写得太乱了,不爱看了,我想应该是在屏幕上输入一个年份,先看是不是瑞年,然后判断一下他是星期几吧)
更多追问追答
追问
功能是 要查到某月的 日历
追答
import java.util.Scanner;
public class TestYear{
//计算闰年
public TestYear( int day){
if(day%4==0){
System.out.println(day+"为闰年"+"\t");
day=366;
System.out.println("闰年全年天数为"+day+"\t");
}else{
System.out.println(day+"不是闰年"+"\t");
day=365;
System.out.println("全年天数为"+day+"\t");
}
}
public TestYear(int year, int month ){
//计算月份天数
if(year!=0&&month==1||month==5||month==7||month==8||month==10||month==12){
System.out.println("这个月天数为31"+"\t");
}
else if(year!=0&&month==3||month==4||month==6||month==9||month==11){
System.out.println("这个月天数为30"+"\t");
}
else if( year%4==0&&month==2 ) {
System.out.println("这个月天数为28"+"\t");
}
else if( year%4!=0&&month==2 ){
System.out.println("这个月天数为29"+"\t");
}
else{
System.out.println("请输入正确的形式");
}
}
(超限了,后面代码。。。)
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询