java编写的用年份和月份查询日历的类

package practice;
import java.util.Calendar;
import java.util.Scanner;
import java.util.TimeZone;
/**
 * Created by fangjiejie on 2016/11/27.
 */
public class Mydate {
    public static final int dayNum[]={31,28,31,30,31,30,31,31,30,31,30,31};
    static boolean judgeYear(int year){//判断是否为闰年,是闰年2月为29天
        if((year%400==0)||((year%4==0)&&(year%100!=0))){return true;}
        else{return false;}
    }
    static void show(int year,int month,Calendar calendar){
        if(judgeYear(year)){
            dayNum[1]=29;
        }
        int count=dayNum[month];//记录当前月份的总天数
        calendar.set(Calendar.YEAR,year);
        calendar.set(Calendar.MONTH,month);
        calendar.set(Calendar.DAY_OF_MONTH,1);
        System.out.println(calendar.getTime());
        int p=calendar.get(Calendar.DAY_OF_WEEK);//计算当前月份的第一天是一周的第几天
                                                   //这个结果是以星期天为第一天算出来的,
        for(int i=0;i<p-1;i++)//空出来的天数用空格补齐
        {
            System.out.print("       ");
        }
        int c=1;//c表示当前月份的某天,从1号开始
        while(c<=count){
            p++;//用p 来控制换行
            System.out.print(c+"     ");
            if(c<10){
                System.out.print(" ");//为了格式对齐,一位数字的天数多输出空格
            }
            if(p%7==1){
                System.out.println();
            }
            c++;
        }
    }
    public static void main(String[] args) {
        Calendar Md=Calendar.getInstance();
        Md.setTimeZone(TimeZone.getTimeZone("GMT+8"));
        int year=Md.get(Calendar.YEAR);
        int month=Md.get(Calendar.MONTH);
        show(year,month,Md);
        while(true) {
            System.out.println();
            System.out.println("如果想继续查找某年某月的日历,那么");
            Scanner reader = new Scanner(System.in);
            System.out.println("请输入年份:");
            year = reader.nextInt();
            System.out.println("请输入月份:");
            month = reader.nextInt();
            show(year, month - 1, Md);
        }

    }
}
/*****格式化日期的类*****/
public class FF {
    public static void main(String[] args) {
        System.out.println(new Date());
        SimpleDateFormat l= new SimpleDateFormat("yyyy-MM-dd HH:mm;ss");//设定格式模板
        System.out.println(l.format(new Date()));
        Calendar c=Calendar.getInstance();//不需要实例化 静态方法创建
        c.setTimeZone(TimeZone.getTimeZone("GMT+8"));
        System.out.println(c.get(Calendar.YEAR));
        System.out.println((c.get(Calendar.MONTH))+1);
        System.out.println(c.get(Calendar.DAY_OF_MONTH));
        System.out.println(c.get(Calendar.HOUR_OF_DAY));
        System.out.println(c.get(Calendar.MINUTE));
        System.out.println(c.get(Calendar.SECOND));
        c.set(Calendar.YEAR,2016);//设定日历字段的值。
        c.add(Calendar.YEAR,5);//根据日历的规则,为给定的日历字段添加或减去指定的时间量。
        System.out.println(c.get(Calendar.YEAR));//返回日历字段的值。
        Date m=c.getTime();//返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象。
        System.out.println(l.format(m));
        Calendar d=Calendar.getInstance();
        d.set(Calendar.YEAR,2004);
        d.set(Calendar.MONTH,2);

        int k=c.getTime().getDay();

    }
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值