虽然在大神们看来很简单的一个小程序,但是我还是磨了好久,在影哥的指导下,还是写出来啦~~~开心~~~这个是几天前的,最近一直忙着赶作业,没时间写博客了~~~很久没更新~~~博客的浏览量都木有增加唉......................还是说回程序,其实我在写代码的时候,会出现很多不应该的小错误,一些简单的拼写或者是忘了导入所用函数的包,这些简单的编译错误虽然很容易改正,但是这个坏习惯必须要改掉,希望以后的自己会看到自己每一天的进步~~~~加油~~~~
package lirong.com;
import java.util.Scanner;
public class Year{
public static void main(String[] args) {
Scanner sc=new Scanner( System.in );
System.out.println("请输入年份:");
int year=sc.nextInt();
System.out.println("请输入月份:");
int month=sc.nextInt();
int totaldays=getTotalDays( year ,month );
int weekDay=getWeekDay( totaldays );
System.out.println(year+"年"+month+"月的一号是星期:"+weekDay);
System.out.println("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");
//求出year年month月有多少天
int monthDay=getMonthDay( year,month );
for(int i=1;i<=monthDay;i++){
if(weekDay+1%7==0){
System.out.println();
}else{
System.out.print(i+"\t");
}
}
}
public static int getWeekDay( int totaldays ){
int weekDay=totaldays%7;
return weekDay;
}
public static int getTotalDays( int year,int month ) {
int totaldays=0;
for(int i=1900;i<year;i++){
if( isRun( i )){
totaldays+=1;
}
}
for(int j=1;j<month;j++){
totaldays+=getMonthDay( year, j );
}
totaldays+=1;
return totaldays;
}
//计算输入的年份是否是润年
public static boolean isRun( int year ) {
if( (year%4==0&&year%100!=0) || year%400==0 ){
return true;
}else{
return false;
}
}
public static int getMonthDay( int year, int month ) {
int days=0;
switch ( month ){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: days=31;break;
case 4:
case 6:
case 9:
case 11: days=30;break;
case 2:
if(isRun( year )){
days=29;
}else{
days=28;
}
}
return days;
}
}