/*
做日历作业:
输入一个时间如: 2016-11
就显示2016年11月的日历显示
*/ import java.util.*; class calendar {
public static void main(String[] args){ System.out.print("请选择年份(大于1990年):");
Scanner input = new Scanner(System.in);
int year = input.nextInt();
System.out.print("请选择该年的月份:");
int month = input.nextInt();
// 先判断year是否是闰年
boolean Renyear;
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
System.out.println(year + "是闰年");
Renyear = true;
} else {
System.out.println(year + "是平年");
Renyear = false;
}
//记录当月的天数
int day = 0;
switch (month){
case 1:
day = 31;
break;
case 3:
day = 31;
break;
case 4:
day = 30;
break;
case 5:
day = 31;
break;
case 6:
day = 30;
break;
case 7:
day = 31;
break;
case 8:
day = 31;
break;
case 9:
day = 30;
break;
case 10:
day = 31;
break;
case 11:
day = 30;
break;
case 12:
day = 31;
break;
default:
if (Renyear) {
day = 29;
} else {
day = 28;
}
break;
}
System.out.println(year + "年" + month + "月" + "有" + day + "天" + "\t");
System.out.println(month + "月份的日历如下:");
// 从1990年到指定日期的天数,1990年1月1日为星期一。
int sum = 0;
for(int i = 1990;i < year; i++) {
// 判断是否是闰年
if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
sum = sum + 366;
} else {
sum = sum + 365;
}
}
// 统计月份的天数
for (int i = 1; i < month; i++) { if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12) { // 大月
sum = sum + 31; } else if (i == 4 || i == 6 || i == 9 || i == 11){ // 小月
sum = sum + 30;
} else {
// 二月
if (Renyear) {
sum = sum + 29;
} else {
sum = sum + 28;
}
}
} int blank = sum % 7 + 1;//blank开始输出的空格数 +1是从星期天开始;
System.out.println("星期天\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六"); int temp = 1;
for (int i = 0; i < blank; i++) {
System.out.print("\t");
temp++;
}
if (temp > 7){
System.out.println("");
temp = 1;
}
for (int i = 1; i <= day; i++) {
if (temp % 7 == 0){
System.out.print(i + "\n");//控制换行
temp = 1;
}
else{
System.out.print(i + "\t");
temp++;
}
} }
}

java 输入年月,获取日历表的更多相关文章

  1. Java万年历,输入年月获取该年月日历表

    //输入年份和月份,打印出这个月的日历表 /* 1.1900年1月1日是星期一 2.计算输入的年份距离1900年有多少天再计算当年1月1日距这个月有多少天 1) 3.总天数%7得出从星期几开始 注:计 ...

  2. Python 学习笔记:根据输入年月获取该月的第一天和最后一天

    目的: 给定一个时间,比如:2020.02,要求返回所输入月份的第一天及最后一天,比如:('2020.02.01', '2020.02.29') 参考博客:https://blog.csdn.net/ ...

  3. java 根据年月获取当前年月的最后一天,获取当前年月有多少天

    new Date( "2019-08-" + 1)   获取2019年8月的最后一天   结果为--2019-08-31 new Date(2019, 8, 0).getDate( ...

  4. java根据年月获取当前月的每一天日期

    public static List<String> getDayByMonth(int yearParam,int monthParam){         List list = ne ...

  5. Java编程中获取键盘输入实现方法及注意事项

    Java编程中获取键盘输入实现方法及注意事项 1. 键盘输入一个数组 package com.wen201807.sort; import java.util.Scanner; public clas ...

  6. Java 输入/输出——处理流(RandomAccessFile)

    RandomAccessFile是Java输入/输出流体系中功能最丰富的文件内容访问类,它提供了众多的方法来访问文件内容,它既可以读取文件内容,也可以向文件输出数据.与普通的输入/输出流不同的是,Ra ...

  7. jenkins Build Flow job 输入参数获取和传递

    jenkins Build Flow job 输入参数获取和传递 如果设置Build Flow的job,怎样获取手工输入的参数. 1. 指定构建参数 job配置中,勾选"参数化构建" ...

  8. JAVA 输入输出程序开发

    参考: java中 静态方法和非静态方法的区别 字符流的输入和输出 java文件创建.删除.读取.写入操作大全 Java键盘输入并且写入文件 File类的isDiretory Java统计子串在字符串 ...

  9. 【转】Java Web 项目获取运行时路径 classpath

    Java Web 项目获取运行时路径 classpath 假设资源文件放在maven工程的 src/main/resources 资源文件夹下,源码文件放在 src/main/java/下, 那么ja ...

随机推荐

  1. JAVA的i++, i+=1, i=i+1有区别吗?

    看一些JAVA基础题的时候,经常看到这个问题,很多人的解释是:i++最快,i+=1其次,i=i+1最慢.下面通过Sun JDK编译出来的字节码验证一下这个问题. 为了让编译出来的字节码便于阅读,将这三 ...

  2. .net WebServer例

    新建.asmx页面 using System; using System.Collections.Generic; using System.Linq; using System.Web; using ...

  3. php之登录功能实现。

    项目默认存在的东西:jquery库[jquery.min.js] 登录功能实现的基本逻辑: 1.书写前台php功能基本页面:(index.php) a.编写基本功能,比如用户名.密码.登录 b.引用j ...

  4. word20161215

    name / 名称 name mapping / 名称映射 name resolution / 名称解析 name server (NS) resource record / 名称服务器资源记录 na ...

  5. Python里*arg 和**kwargs的作用

    Hi,伙计们.我发现Python新手们在理解*args和**kwargs这两个魔法变量时都有些困难.他们到底是什么?首先,我先告诉大家一个事实,完整地写*args和**kwargs是不必要的,我们可以 ...

  6. Mybatis在insert操作时返回主键

    今天在写项目的时候,遇到一个需求,就是在像数据库插入数据的时候,要保留插入数据的主键,以便后续进行级联时,可以将该主键作为另张表的外键. 但是在正常情况下我们使用插入语句返回的是int型,含义是影响该 ...

  7. C++中的 :: 用法

    ::是运算符中等级最高的,它分为三种:1)global scope(全局作用域符),用法(::name)2)class scope(类作用域符),用法(class::name)3)namespace ...

  8. 转一篇介绍Web session概念的文章

    说的非常好,如果你对web中的session概念不太清楚的话,一定要去看看,可能需要FQ才能阅读:http://fred-zone.blogspot.com/2014/01/web-session.h ...

  9. Andorid实现点击获取验证码倒计时效果

    这篇文章主要介绍了Andorid实现点击获取验证码倒计时效果,这种效果大家经常遇到,想知道如何实现的,请阅读本文   我们在开发中经常用到倒计时的功能,比如发送验证码后,倒计时60s再进行验证码的获取 ...

  10. C#设计模式之工厂方法

    工厂方法模式: 1.不再提供一个按钮工厂类来统一负责所有产品的创建,而是将具体按钮的创建过程交给专门的工厂子类去完成 如果出现新的按钮类型,只需要为这种新类型的按钮定义一个具体的工厂类就可以创建该新按 ...