java日历计算
2009-06-24 10:50
281 查看
//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;//结束本程序,返回主程序,即主菜单
}
}
}
}
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;//结束本程序,返回主程序,即主菜单
}
}
}
}
相关文章推荐
- java 日历计算农历和节假日的常用类(包括除夕的算法)
- Java 小日历格式输出 闰年计算
- java中日历类计算间隔多少天后变成的时间
- java 日历工具类(计算周的开始日期和结束日期,以及包好的日期)
- java中数值计算的精度问题
- java用类封装的方式写简单的日历
- 计算文件大小,java
- JAVA学习(2)——输入学生的5门成绩,计算平均成绩
- java中日期加减计算(转)
- JAVA计算字符串的相似度
- Java计算两个程序运行时间
- Java 根据两个经纬度坐标计算距离
- Java计算数学表达式的结果
- Java计算同一格式文本文件行数
- [ JAVA编程 ] double类型计算精度丢失问题及解决方法
- 金融项目java开发_BigDecimal(解决计算精度问题)
- Java一些简单的计算题合集(一)
- java小案例:计算你现在到出生的天数
- java为什么计算时间从1970年1月1日开始
- java中int取值范围是怎么计算的?