首页 > Java > java教程 > 正文

java日历显示年份、月份

高洛峰
发布: 2016-11-21 11:46:26
原创
1455 人浏览过

import java.util.Scanner;

class CalendarMain

    //主函数入口
    public static void main(String[] args) 
    {
        System.out.println("*****请输入日期(格式如: 2011-01)*****");
        Scanner sc = new Scanner(System.in);
        String ym = sc.next();
        //截取字符串
        String[] yearMonth = ym.split("-");
        //将字符串转化成整型
        int year = Integer.parseInt(yearMonth [0]);
        int month = Integer.parseInt(yearMonth [1]);
        Year.fun(year);
        Month.fun(month,year);
    }
}

//获取闰年个数
class Year
{
    //多少个闰年
    static int leapYear = 0;

    public static void fun(int year){
        if(year > 1990 && year <10000){
while(year >= 1990){
                if(year % 4 == 0 && year % 100 != 0 || (year % 400 ==0 )){
                    leapYear ++;
                }
                year --;
            }
        }else{
            System.out.println("请输入查询的年份大于或等于1990年!");
        }
    }
}

//获取一个月多少天和总天数
class Month
{
    public static void fun(int month,int year){
        int monthDay = 0;
        Year y = new Year();
        int days = y.leapYear + (year - 1990)*365;
        if(month > 0 && month <=12){
for(int i = 1;i <= month;i++){
if(i < 8 && i != 2){
days += i % 2 == 1 ? 31 :30;
monthDay = i % 2 == 1 ? 31 :30;
}
if(i > 7){
                    days += i % 2 == 1 ? 30 :31;
                    monthDay  = i % 2 == 1 ? 30 :31;
                }
                if(i == 2){
                    if(year % 4 == 0 && year % 100 != 0 || (year % 400 ==0 )){
                        days += 28;
                        monthDay = 29;
                    }else{
                        days += 28;
                        monthDay = 28;
                    }
                }
            }
            Show.mothed(days,monthDay);
        }else{
             System.out.println("请输入正确的月份!");
        }
    }
}

//显示日历
class Show
{
    public static void mothed(int days, int monthDay){
          //加一表示从星期一开始
          int week = (days - monthDay) % 7 + 1;

          System.out.println("\n周日"+"\t周一"+"\t周二"+"\t周三"+"\t周四"+"\t周五"+"\t周六");
          for (int i = 1;i <= monthDay + week ;i++ )
          {
              if(i <= week){
                  System.out.print(" "+"*"+"\t");
              }else{
                  if((i-week) < 10){ 
                       System.out.print(" "+(i-week)+"\t");
                    }else{
                       System.out.print((i-week)+"\t");
                     }
              }      
             if(i%7 == 0){
                  System.out.print("\n");
                 }
          }
    }
}

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!