编写过程:先指定固定的年份来输出指定月份的日历

 /*计算1900年1月1日到2018年11月1日一共有多少天
计算月份
对7进行取模,结果就为星期几
*/
import java.util.Scanner; public class Test1{
public static void main(String[] args){
int sum=0;
for(int year=1900;year<=2017;year++){
if(year%4==0&&year%100!=0||year%400==0){//闰年
sum=sum+366;
}else{
sum=sum+365;
}
}
for(int month=1;month<=10;month++){
if(month==2){
if(2018%4==0&&2018%100!=0||2018%400==0){
sum=sum+29;
}else{
sum=sum+28;
}
}else if(month==4||month==6||month==9||month==11){
sum=sum+30;
}else{
sum=sum+31;
}
}
sum=sum+1;
System.out.println("1900年1月1日到2018年11月1日一共有"+sum+"天"); int wekDay=sum%7;
System.out.println("2018年11月1日为星期"+sum%7); System.out.println("日\t一\t二\t三\t四\t五\t六");
for(int i=1;i<=wekDay;i++){
System.out.print("\t");
}
for(int i=1;i<=30;i++){//输出2018年11月份的日历
if(sum%7==6){
System.out.print(i+"\n");
}else{
System.out.print(i+"\t");
}
sum++;
} }
}

将代码变灵活,从控制台输入月份和年份,来生成日历

 import java.util.Scanner;
public class Cal{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
System.out.println("-----万年历-----");
System.out.println("请输入年份:");
int year=in.nextInt();
System.out.println("请输入月份:");
int month=in.nextInt();
int sum=0;
int days;
for(int i=1900;i<=year-1;i++){
if(i%4==0&&i%100!=0||i%400==0){//闰年
sum=sum+366;
}else{
sum=sum+365;
}
}
for(int i=1;i<=month-1;i++){
if(i==2){
if(year%4==0&&year%100!=0||year%400==0){
sum=sum+29;
}else{
sum=sum+28;
}
}else if(i==4||i==6||i==9||i==11){
sum=sum+30;
}else{
sum=sum+31;
}
}
sum=sum+1;
//System.out.println("1900年1月1日到2018年11月1日一共有"+sum+"天"); int wekDay=sum%7;
//System.out.println("2018年11月1日为星期"+sum%7); System.out.println("日\t一\t二\t三\t四\t五\t六");
for(int i=1;i<=wekDay;i++){
System.out.print("\t");
} if(month==2){
if(year%4==0&&year%100!=0||year%400==0){
days=29;
}else{
days=28;
}
}else if(month==4||month==6||month==9||month==11){
days=30;
}else{
days=31;
} for(int i=1;i<=days;i++){//输出2018年11月份的日历
if(sum%7==6){
System.out.print(i+"\n");
}else{
System.out.print(i+"\t");
}
sum++;
} }
}

Java基础10-循日历制作的更多相关文章

  1. Java基础10 接口的继承与抽象类

    链接地址:http://www.cnblogs.com/vamei/archive/2013/03/31/2982240.html 作者:Vamei 出处:http://www.cnblogs.com ...

  2. Java基础10:全面解读Java异常

    更多内容请关注微信公众号[Java技术江湖] 这是一位阿里 Java 工程师的技术小站,作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux ...

  3. Java基础10 接口的继承与抽象类(转载)

    接口继承 接口继承(inheritance)与类继承很类似,就是以被继承的interface为基础,增添新增的接口方法原型.比如,我们以Cup作为原interface:  interface Cup{ ...

  4. java基础(10):继承、抽象类

    1. 继承 1.1 继承的概念 在现实生活中,继承一般指的是子女继承父辈的财产.在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系.例如公司中的研发部员工和维护部员工 ...

  5. java基础(10)---leetcode的String、数组以及集合的一些使用

    整数 一.整数反转_7 /* 12345 变成 54321 */ public class 整数反转_7 { public static void main(String[] args){ int x ...

  6. Java基础(10):java基础第一部分综合测试题,成绩合法性校验与排序

    题目: 编写一个 JAVA 程序,实现输出考试成绩的前三名 要求: 1. 考试成绩已保存在数组 scores 中,数组元素依次为 89 , -23 , 64 , 91 , 119 , 52 , 73 ...

  7. java基础(10) -线程

    线程 相当于轻量级进程,线程在程序中是独立的.并发的执行路径,每个线程有它自己的堆栈.自己的程序计数器和自己的局部变量.但是,与分隔的进程相比,进程中的线程之间的隔离程度要小.它们共享内存.文件句柄和 ...

  8. java基础10 吃货联盟点餐系统

    public class OrderMsg { public static void main(String[] args) throws Exception { /** * 订餐人姓名.选择菜品.送 ...

  9. java基础10(IO流)-字节流

    IO流 输入与输出[参照物是程序] 如果从键盘.文件.网络甚至是另一个进程(程序或系统)将数据读入到程序或系统中,称为输入 如果是将程序或系统中的数据写到屏幕.硬件上的文件.网络上的另一端或者是一个进 ...

  10. 【java基础 10】hash算法冲突解决方法

    导读:今天看了java里面关于hashmap的相关源码(看了java6和java7),尤其是resize.transfer.put.get这几个方法,突然明白了,为什么我之前考数据结构死活考不过,就差 ...

随机推荐

  1. Java Annotation详解

    元数据的作用 如果要对于元数据的作用进行分类,目前还没有明确的定义,不过我们可以根据它所起的作用,大致可分为三类: l          编写文档:通过代码里标识的元数据生成文档. l         ...

  2. Java的post(HTTPS)请求-----接口测试

    package com.ju.util; import java.io.BufferedReader; import java.io.IOException; import java.io.Input ...

  3. c++ 类成员变量初始化总结

    最近在学习c++,不同类型的c++成员变量在初始化的时候也有很有的区别,查了一些资料之后再此记录一下: #include<iostream> using namespace std; // ...

  4. jQuery+css实现tab功能

    点击我我会消失 Click me 点击按钮我会消失,再点击我会出现 演示tab tab1 tab2 tab3 [环球时报记者 郭芳] “中国秘密发射新快速响应火箭”,25日,在中国官方媒体报道我国“快 ...

  5. C/C++中char* p = "hello" 和 const char* p = "hello"的区别

    在写代码常常都会写char * p ="hello";这样的代码,虽然不是错误,但却不建议这样用.应该加const修饰.这句话背后的内涵是什么?下面就刨根问底一下:) 这个行为在不 ...

  6. JVM各区域的用途

    程序计数器 用于给字节码解释器来选取吓一跳需要执行的字节码指令.每个线程有一个独立的程序计数器去,且各个线程之间互不影响.如果线程正在执行一个Java方法,这个计数器记录的是正在执行的虚拟机字节码指令 ...

  7. python---scipy模块

    一  简单介绍 SciPy是基于NumPy开发的高级模块,它提供了许多数学算法和函数的实现,用于解决科学计算中的一些标准问题.例如数值积分和微分方程求解,扩展的矩阵计算,最优化,概率分布和统计函数,甚 ...

  8. Wet Shark and Bishops(思维)

    Today, Wet Shark is given n bishops on a 1000 by 1000 grid. Both rows and columns of the grid are nu ...

  9. Js判断参数(String,Array,Object)是否为undefined或者值为空

    在一些前端控件要提交数据到服务器端的数据验证过程中,需要判断提交的数据是否为空.如果是普通表单的字符串数据,只需要在 trim 后判断 length 即可,而这里需要的数据可以是各种不同的类型,通过 ...

  10. 【bzoj2242】: [SDOI2011]计算器 数论-快速幂-扩展欧几里得-BSGS

    [bzoj2242]: [SDOI2011]计算器 1.快速幂 2.扩展欧几里得(费马小定理) 3.BSGS /* http://www.cnblogs.com/karl07/ */ #include ...