java万年历

//在屏幕输入年份和月份,既可将当月日历打印出来

 

import java.util.*;

public class wannianli {

 /**
  * @param args
  */
 public static boolean IsRunnian(int y)     //判断y是否为闰年,是返回true,否返回false
 {
  if(y%4==0&&y%100!=0||y%400==0)
   return true;
  else
   return false;
 }
 
 public static int daysYear(int y)       //返回y年的总天数
 {
  if(IsRunnian(y))
  return 366;
  else
  return 365;
 }
 
 public static int daysMonth(int y,int m)   //返回y年m月的总天数
 {
  if(IsRunnian(y)&&m==2)
   return 29;
  if(!IsRunnian(y)&&m==2)
      return 28;
     if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)
      return 31;
     else
      return 30;
 }
 
 public static void printdayline(int y,int m,int w)    //打印y年m月的月份表
 {    System.out.println("/n/n星期日/t星期一/t星期二/t星期三/t星期四/t星期五/t星期六");
  for(int i=0;i<w;i++)
          {if(w==7)
          break;
   System.out.print("/t");}
  int days;
  days=daysMonth(y,m);
  for(int i=1;i<=days;i++)
  {  
   if((i+w)%7!=0)
   System.out.print(i+"/t");
   else
    System.out.print(i+"/n");
  }
 }
 
 public static void main(String[] args) {
  // TODO Auto-generated method stub
       int year,month,sumdays=0;
       System.out.print("*******************欢迎使用万年历************************/n");
  Scanner input=new Scanner(System.in);
       System.out.print("请选择年份:  ");
       year=input.nextInt();
       System.out.print("/n请选择月份:  ");
       month=input.nextInt();
       for(int i=1900;i<year;i++)  //用两个FOR计算天数差
       {
      sumdays+=daysYear(i); 
       }
       for(int i=1;i<month;i++)   
       {
        sumdays+=daysMonth(year,i);
       }
      
       int weekday;
       weekday=1+sumdays%7;
     
      
       printdayline(year,month,weekday);
      
 }//main

}//

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值