java日历显示年份、月份

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");
                 }
          }
    }
}

时间: 2024-10-15 17:42:30

java日历显示年份、月份的相关文章

java 实现打印当前月份的日历

实现当前日历的打印,当前日期用*来表示. 关键得出这个月的第一天是星期几. 基姆拉尔森计算公式 W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7 在公式中d表示日期中的日数+1,m表示月份数,y表示年数. 注意1:在公式中有个与其他公式不同的地方: 把一月和二月看成是上一年的十三月和十四月, 例:如果是2004-1-10则换算成:2003-13-10来代入公式计算. 注意2:在大多数天主教国家的日历中,在1752年没有9.3-9.13,在这一年的日历中9月

java日历类Calendar简单使用

import java.util.Calendar; import java.util.TimeZone; public class Test1 { public static void main(String[] args) { //指定东八区,即北京时间 Calendar cc = Calendar.getInstance(TimeZone.getTimeZone("GMT+8")); int year = cc.get(Calendar.YEAR); //月份是从0开始计数的,所

JDK神坑:JAVA中Calendar的月份Month少1

很多朋友在使初次使用Calendar时,会发现月份莫名其妙对不上,显示的结果总是比预期中小1个月,检查好几遍也没发现程序有错,于是开始抓狂.其实这个时候,只要去看JDK就会明白问题所在.JDK告诉我们日历类的月份范围是[0,11],也就是说月份从0开始,而其他却是从1开始的.所以我们在使用Calendar时需要单独对月份进行+1处理. JDK神坑,谨记~ Edit by Jimmy 2014.09.24

基于element-ui的日历显示当月考勤情况

前言:element-ui 日历组件calendar 自定义使用,做一个显示当月考勤情况的功能. 官方文档:https://element.eleme.cn/#/zh-CN/component/calendar 效果图: 准备工作: element-ui的版本最少是2.8.2,由于之前我安装的版本是2.4.2版本,我看的文档是最新的版本,拿日历插件测试了很久一直没有显示出来,然后我将element的版本升级,才发现vue项目打不开,页面卡死.找了很多资料,才发现vue版本最低也得2.5.16,所

关于会议室日历显示预订者信息

关于会议室日历显示预订者信息 首先下载以下工具并安装 Microsoft OnlineServices 登录助手,下载链接如下:http://www.microsoft.com/zh-cn/download/details.aspx?id=41950 Microsoft AzureActive Directory 模块,下载链接如下:http://go.microsoft.com/fwlink/p/?linkid=236297 1:打开用户连接office365的powershell,右键以管理

java 页面显示混乱问题

最近做一个项目,里面的页面引用了很多样式和js,部署运行后,在IE浏览器上显示页面,登录页面布局全乱掉了,费了大半天力气,发现是因为:IE调试工具下,文本模式选中的是Quirks模式,于是上网搜了一下什么是Quirks模式,看到了http://blog.csdn.net/garcon1986/article/details/5839144上的这篇文章,忽然有了灵感,原来是velocity页面上没有doctype声明,“在doctype声明中,没有使用DTD声明或者使用HTML4以下(不包括HTM

java 读取显示txt内容(Swing)

java 读取显示txt内容(Swing),JTextArea public class TxtSwing extends JFrame { private JTextArea textAreaOutput; public TxtSwing() throws IOException { super("txt"); setDefaultCloseOperation(EXIT_ON_CLOSE); getContentPane().setLayout(new java.awt.FlowLa

SwitchDemo(1).java【输入年份和月份,判断某年某月有多少天】

//课堂习题:输入年份和月份,判断某年某月有多少天 import java.util.Scanner; public class SwitchDemo{ public static void main(String [] args){ Scanner input=new Scanner(System.in); System.out.print("请输入需要查询的年份:"); int year=input.nextInt(); System.out.print("请输入需要查询

Java日历模型:输入一个日期,控制台显示

1 package com.zhen.calendar; 2 3 import java.text.DateFormat; 4 import java.text.SimpleDateFormat; 5 import java.util.Calendar; 6 import java.util.Date; 7 import java.util.GregorianCalendar; 8 import java.util.Scanner; 9 10 /* 11 * 输入一个日期,控制台显示 12 *