java日历计算

//yimijava

 

 

package p1;

import java.io.*;

public class MainClass{
 public static void main(String[] args)
 throws IOException{
  while(true){
   System.out.println("/n请选择你要进行的操作(请输入1-4中人一个数字):/n"
                +"1:查看月历;/n"
                +"2:查看该日期是星期几;/n"
                +"3:查看两个日期相差的天数;/n"
                +"4:退出系统;/n");
   
   int choice=0;
   try{
    BufferedReader br=new  BufferedReader(new InputStreamReader(System.in));
                choice=Integer.parseInt(br.readLine());
   }catch(Exception e){}            
                
            if(choice==1){//查看月历
           Month m=new Month();
            }
           
            else if(choice==2){//查看该日期是星期几
              Week w=new Week(); 
            }
           
            else if(choice==3){//查看两个日期相差的天数
              DateRange d=new DateRange();
            }
           
            else if(choice==4){
              System.exit(0);// 退出系统
            }
           
            else{
             System.out.println("您输入的数据有误!!!!");
            } 
   }   
 }
}

 

******************************************************************

 

package p1;
import java.io.*;
import java.util.*;

public class Month{
  public Month()
   throws IOException{
    while(true){
     System.out.println("请输入年月:");
     BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
     int year=Integer.parseInt(br.readLine()); 
        int month=Integer.parseInt(br.readLine()); 

         //获得输入的年月    
        Calendar c=GregorianCalendar.getInstance();
        int []day={31,28,31,30,31,30,31,31,30,31,30,31};
        c.set(Calendar.YEAR,year);
        c.set(Calendar.MONTH,month-1);
         //要减1,因为Calendar中的MONTH是按照0开始算起的,也就是说一月到十二月份对应的数字是0~11
    
       System.out.println("------------"+year+"年"+month+"月------------");
       System.out.println("SUN  MON  TUE  WED  THU  FRI  SAT");
       c.set(Calendar.DATE,1);//从1号开始显示
       int first=c.get(Calendar.DAY_OF_WEEK);//该月的第一天是一个星期的第几天
       int i;
       if((year%4==0  &&  year%100!=0) || year%400==0)
          day[1]=29;//闰年时将二月改为29天   
       for(i=1;i<first;i++)   System.out.print("     ");//空格数为5
       for(i=1;i<=day[month-1];i++){
        if(i<10)   System.out.print(" ");
          System.out.print(" "+i);//是数字右对齐
        System.out.print("  ");
        if(first++%7==0)   System.out.println();//到星期六时控行
       }
    
       System.out.println("/n/n您还要继续吗??(不区分大小写)/n"
                        +"Y:Yes/n"
                        +"N:No/n");
     String s=br.readLine();
    if(s.equals("N")||s.equals("n")){
     break;//结束本程序,返回主程序,即主菜单
    }
   
       System.out.println();
    }
  } 
}
 
****************************************************

 

package p1;

import java.io.*;
import java.util.*;

public class Week{
 public Week()
  throws IOException{
   while(true){
     System.out.println("请输入年月日:");
      BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
       int year=Integer.parseInt(br.readLine()); 
          int month=Integer.parseInt(br.readLine());
      int date=Integer.parseInt(br.readLine());
    
      //获得输入的年月日   
          Calendar c=GregorianCalendar.getInstance();      
          c.set(Calendar.YEAR,year);
          c.set(Calendar.MONTH,month-1);
          //要减1,因为Calendar中的MONTH是按照0开始算起的,也就是说一月到十二月份对应的数字是0~11
          c.set(Calendar.DATE,date);
       
          //输出星期
          String []weeks={"星期天","星期一","星期二","星期三","星期四","星期五","星期六"};       
          int first=c.get(Calendar.DAY_OF_WEEK);//该日期是一个星期的第几天       
          System.out.println(year+"年"+month+"月"+date+"日是"+weeks[first-1]);
         
          System.out.println("/n/n您还要继续吗??(不区分大小写)/n"
                        +"Y:Yes/n"
                        +"N:No/n");
    String s=br.readLine();
       if(s.equals("N")||s.equals("n")){
        break;//结束本程序,返回主程序,即主菜单
       }
     }
   }
}

************************************************************

 

package p1;

import java.io.*;
import java.util.*;

public class DateRange{
 public DateRange()
   throws IOException{
    while(true){
    System.out.println("请输入第一个年月日:");
    BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
     int year1=Integer.parseInt(br.readLine()); 
        int month1=Integer.parseInt(br.readLine());
    int date1=Integer.parseInt(br.readLine());
    
    System.out.println("请输入第二个年月日:");
    BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
     int year2=Integer.parseInt(in.readLine()); 
        int month2=Integer.parseInt(in.readLine());
    int date2=Integer.parseInt(in.readLine());
    
    //获得第一个日期   
        Calendar c1=GregorianCalendar.getInstance();      
        c1.set(Calendar.YEAR,year1);
        c1.set(Calendar.MONTH,month1-1);
       //要减1,因为Calendar中的MONTH是按照0开始算起的,也就是说一月到十二月份对应的数字是0~11
        c1.set(Calendar.DATE,date1);
       
         //获得第二个日期   
        Calendar c2=GregorianCalendar.getInstance();      
        c2.set(Calendar.YEAR,year2);
        c2.set(Calendar.MONTH,month2-1);
       //要减1,因为Calendar中的MONTH是按照0开始算起的,也就是说一月到十二月份对应的数字是0~11
        c2.set(Calendar.DATE,date2);
       
        //将Calendar实例转化为Date类
        Date d1=c1.getTime();
        Date d2=c2.getTime();
       
       
        long daterange=Math.abs(d1.getTime()-d2.getTime());
         //getTime()返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
        long time=1000*3600*24;     //一天的微秒数
        System.out.println("两个日期相隔"+daterange/time+"天");
       
        System.out.println("/n/n还要继续吗??/n"
                            +"Y:Yes/n"
                            +"N:NO(不区分大小写)/n");
         String s=br.readLine();            
        if(s.equals("N")||s.equals("n")){
         break;//结束本程序,返回主程序,即主菜单
        }

     }
   }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值