作者在 2017-07-11 00:12:04 发布以下内容
package example;//Scanner \ for \ if
import java.util.Scanner;//主题:日历制作
public class calendar {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("please input the year:");
int year = s.nextInt();
System.out.println("please input the month:");
int month = s.nextInt();
System.out.println("please input the day:");
int day = s.nextInt();
int sum=0;
for(int i=1900;i<year;i++){//first temp:计算输入年份到1900年的天数
if(i%4==0&&i%100!=0||i%400==0){//瑞年2月29
sum+=366;
}else sum+=365;
}//计算”月-1“的天数
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){//这里是 i 不是month!!
sum+=30;
}else sum+=31;
}//计算当月的天数--“日”:
//sum+=day-1;//因为前面算了1900年1月1日的天数 ,本来是不要这一天的 比如1900.1.2到1900.1.1一共有2天,相差却1天
//计算当月第一天是星期几
System.out.println("一\t二\t三\t四\t五\t六\t日");
for(int i =1;i<=sum%7;i++){//以1900年2月1日为例 差3天,输入3个空格
System.out.print(" \t");
}
//判断这个月的天数:
int month_mark;
if(month==2){
if(year%4==0&&year%100!=0||year%400==0){month_mark=29;}
else month_mark=28;
}else if(month==4||month==6||month==9||month==11){month_mark=30;}
else month_mark=31;
for(int i=1;i<=month_mark;i++){
System.out.print(i+"\t");
sum++;
if(sum%7==0) System.out.println();
}//关键步骤:1.计算1900年1月1日到所输入年月的1日的天数(比如1900年2月1日)
// 在上面要经常计算平年瑞年
//2.判断这个年的这个个月第一天为星期几,方法:用到这个月第一天距离1900.1.1的sum%7得到的这个余数就是周几,具体可参考1900.2.1百度日历
//3.开始输出temp2得到的\t数然后就可以开始输入1~30(当月天数,不一定是30,判断即可),sum++之后取余数为0 则换行即可
//4,其实 day 的输入是多余的
}
}
import java.util.Scanner;//主题:日历制作
public class calendar {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("please input the year:");
int year = s.nextInt();
System.out.println("please input the month:");
int month = s.nextInt();
System.out.println("please input the day:");
int day = s.nextInt();
int sum=0;
for(int i=1900;i<year;i++){//first temp:计算输入年份到1900年的天数
if(i%4==0&&i%100!=0||i%400==0){//瑞年2月29
sum+=366;
}else sum+=365;
}//计算”月-1“的天数
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){//这里是 i 不是month!!
sum+=30;
}else sum+=31;
}//计算当月的天数--“日”:
//sum+=day-1;//因为前面算了1900年1月1日的天数 ,本来是不要这一天的 比如1900.1.2到1900.1.1一共有2天,相差却1天
//计算当月第一天是星期几
System.out.println("一\t二\t三\t四\t五\t六\t日");
for(int i =1;i<=sum%7;i++){//以1900年2月1日为例 差3天,输入3个空格
System.out.print(" \t");
}
//判断这个月的天数:
int month_mark;
if(month==2){
if(year%4==0&&year%100!=0||year%400==0){month_mark=29;}
else month_mark=28;
}else if(month==4||month==6||month==9||month==11){month_mark=30;}
else month_mark=31;
for(int i=1;i<=month_mark;i++){
System.out.print(i+"\t");
sum++;
if(sum%7==0) System.out.println();
}//关键步骤:1.计算1900年1月1日到所输入年月的1日的天数(比如1900年2月1日)
// 在上面要经常计算平年瑞年
//2.判断这个年的这个个月第一天为星期几,方法:用到这个月第一天距离1900.1.1的sum%7得到的这个余数就是周几,具体可参考1900.2.1百度日历
//3.开始输出temp2得到的\t数然后就可以开始输入1~30(当月天数,不一定是30,判断即可),sum++之后取余数为0 则换行即可
//4,其实 day 的输入是多余的
}
}