JAVA编程问题:要求编写一个日历程序,要求显示各月的天数和日期.

2024-12-02 18:38:08
推荐回答(3个)
回答(1):

额 好强大的问题额 代码太多我就不写了 提供下思路 首先接收 用户输入年份和月份 我们就不计算太远的了 就从1900年以上的年份开始计算 鄙人查过了1900年的一月一日是 星期一属于开始日期 接收好数据之后 循环累加 从用户输入的年份到1900年的总天数 for(int i = 1900;i<年份;i++){ //记住不能小于等于 因为月份是等下要累加的 if(i%4==0||i%400==0&&i%100!=0){ 润年:能给四整除或四百整除 但不能被100整除 sum +=366; // += 等价于sum = sum+366; }else{ sum +=365; } } 年份的天数累加好了 接着累加 月份的 先确定下 最后一个月份是不能累加的 因为最后一个月份是要用来显示的 我们先累加用户输入的月之前的 月份总天数 for(int i = 1;i<=月份;i++){ 这里就要小于和等于了 因为.我们不但要计算输入月份之前的天数 还需要判断//最后一个月份的天数 switch(i){ case 1: case 3: case 5: case 7: case 8: case 11: day = 31; //大月为 1 3 5 7 8 11 break; case 2: if(i%4==0||i%400==0&&i%100!=0){ day = 28; }else{ day = 29; } break; //也可以用三目算法 day = i%4==0||i%400==0&&i%100!=0? 28: 29; // 此算法一般只用于判断俩个 条件 后面要加问号哦 default: day = 30; } switch外面 for循环里面加入if判断 if(i

回答(2):

就连最后一个for格式化
都写少了一句
System.out.print(i+"\t");
写了这么多错误,如果对你有什么误导的话
见谅

回答(3):

import java.util.Scanner;
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 if(i%4==0&&i%100!=0||i%400==0){
sum+=366;
}else{
sum+=365;
}
}
for(int i=1;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");
}
for(int i=1;i<=30;i++){
if(sum%7==6){
System.out.print(i+"\n");
}else{
System.out.print(i+"\t");
}
sum++;
}
}
}