//25.万年历(实现从键盘输入1900年之后的任意的某年、某月,输出该月的日历)

import java.util.Scanner;

public class Calendar{

public static void main(String[] args){

//显示日历

// 1、对应月份的天数

//① 1、3、5、7、8、10、12月份  31天

//② 4、6、9、11  30天

//③ 2  28天或29天(待定)

// 2、对应月份1号 是星期几

//① 1900年 1月 1日 星期1

//② 指定日期的星期  与1900年1月1日相差的天数%7+1 (1~7的范围)

//③ 相差天数=1900年与年份之间相差的天数 + 年份到指定月份1号之前相差的天数

// 3、指定年份是平年还是闰年(确定二月 的天数)

//① 确定指定年份的2月有多少天

//接收用户从控制台输入的数据

Scanner sc = new  Scanner(System.in);

System.out.println("请输入年份(>=1900):");

int year = sc.nextInt();//获取年份

System.out.println("请输入月份[1-12]:");

int month = sc.nextInt();//获取月份

//1、对应月份的天数

int days = 28;

if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){

days = 31;

}else if(month==4||month==6||month==9||month==11){

days = 30;

}else{

if(year%400==0||(year%4==0&&year%100!=0)){//判断闰年的情况

days = 29;

}

}

//2、相差天数

int yDays = 0;//统计两个年份之间相差的天数

for(int y = 1900;y

if(year%400==0||(year%4==0&&year%100!=0)){//判断闰年的情况

yDays += 366;

}else{

yDays += 365;

}

}

int mDays = 0;//指定年份1月1日,到指定月份1日相差的天数

for(int m = 1;m

if(m==1||m==3||m==5||m==7||m==8||m==10||m==12){

mDays += 31;

}else if(m==4||m==6||m==9||m==11){

mDays += 30;

}else{

if(year%400==0||(year%4==0&&year%100!=0)){//判断闰年的情况

mDays += 29;

}else{

mDays += 28;

}

}

}

int totalDays = yDays + mDays+1;//相差总天数

int week = totalDays%7+1;//指定月份1号 的星期

System.out.println("日\t一\t二\t三\t四\t五\t六");

//先根据星期 确定需要打印空位的 情况(week)

for(int i = 1;i<=week;i++){

if(i%7==0){

System.out.println(" \t");

}else{

System.out.print(" \t");

}

}

//可以打印对应月份的天数(days)

for(int j = 1;j<=days;j++){

if((j+week)%7==0){

System.out.println(j+"\t");

}else{

System.out.print(j+"\t");

}

}

}

}

万年历c语言打印年月,万年历(实现从键盘输入1900年之后的任意的某年、某月,输出该月的日历)...相关推荐

  1. c语言课程下载模板,万年历C语言课程设计万年历

    万年历C语言课程设计万年历Tag内容描述: 1.摘 要本设计应用AT89C52芯片作为核心,采用C语言进行编程,实现以下功能:小时.分.秒.年.月.日.星期的显示和实时温度检测.该设计的电子时钟系统由 ...

  2. c语言大作业万年历,C语言实现简单万年历

    本文实例为大家分享了C语言实现简单万年历的具体代码,供大家参考,具体内容如下 #include #include int year, month; int run[12] = { 31,29,31,3 ...

  3. c语言课程设计万年历,C语言课程设计--万年历.doc

    C语言课程设计--万年历 C 语 言 课 程 设 计 报 告 设计题目:学生姓名:学生学号:专业班级:学院名称:同组人姓名:指导老师:姚 兰 年 月 日 1 需求分析 问题描述输入数据要求 /*如果给 ...

  4. C语言基础课 编写程序之从键盘输入10个候选人的姓名和得票数,编程实现如下:1.统计总票数2.打印得票数最多的候选人最多的候选人的姓名和得票数3.给定姓名,查询该候选人的得票数4.按得票数从高到低

    从键盘输入10个候选人的姓名和得票数,编程实现如下功能:1.统计总票数2.打印得票数最多的候选人最多的候选人的姓名和得票数3.给定姓名,查询该候选人的得票数4.按得票数从高到低的顺序,打印所有候选人的 ...

  5. 22 Python IO、打印到屏幕、读取键盘输入、打开和关闭文件、文件定位、重命名和删除文件、Python里的目录、文件,目录相关的方法

    22Python文件I/O 22.1打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式.此函数把你传递的表达式转换成一个字符串表达式,并将结果写到标准输出如下: ...

  6. 输入三角形的三c语言程序,请问c语言中 从键盘输入三角形的3边 调用三角形面积公式求面积 并输.,C语言编写程序,从键盘输入三角形三条边长(实数),计算并输出...

    导航:网站首页 > 请问c语言中 从键盘输入三角形的3边 调用三角形面积公式求面积 并输.,C语言编写程序,从键盘输入三角形三条边长(实数),计算并输出 请问c语言中 从键盘输入三角形的3边 调 ...

  7. C语言链表-创建链表并且从键盘输入赋值

    链表是C语言里面学习比较困难的一部分内容,下面这个例子就演示了创建一个链表并且从输入端赋值,希望对大家有用. #include <stdio.h> #include <stdlib. ...

  8. 【C语言】案例二十一 从键盘输入一组数据,求出这一组数据的平均值并输出(调用函数)

    函数的定义 在C语言中最基础的程序模块就是函数,函数被视为程序中的基本逻辑单位,一个C语言程序由一个main()函数和若干个普通函数构成. 定义一个C函数的语法格式如下: 返回值类型 函数名([[参数 ...

  9. C语言学习之试编程从键盘输入2*3的二维数组,将该数组行列交换输出。

    试编程从键盘输入2*3的二维数组,将该数组行列交换输出. #include <stdio.h> void main(){int a[2][3];for(int i=0;i<2;i++ ...

最新文章

  1. 微软企业库4.1学习笔记(六)创建对象
  2. Fragment详解之四——管理Fragment(2)
  3. TensorFlow入门:第一个机器学习Demo
  4. how to find the original page containing a given image
  5. 让未备案的网站先飙起来
  6. MyBatis-Plus通过注解的方式绑定一对多查询
  7. unittest 简单使用
  8. 【vue】vue中element表格导出为excel表格
  9. 大转盘抽奖小程序源码
  10. 非确定有限自动机转换为确定有限自动机
  11. 学习网络的几本好书推荐
  12. 小技巧 - 淘宝怎么联系人工客服?
  13. 解决桌面单击右键反应慢的问题
  14. 风吹柳叶(Curtain creeper)
  15. Websocket(二)-客户端与服务器通信
  16. 人工智能(AI)是如何处理数据的?
  17. python 如何判断当天为周几?判断当天是否为工作日?
  18. 【国产之光】:龙芯1B(嵌入式方向)
  19. 中国人寿研发中心笔试JAVA开发
  20. 一例所有文件都打不开的数据恢复过程

热门文章

  1. entity、model、domain三个包名的意思
  2. VM30031:1 Uncaught ReferenceError: xxx is not defined
  3. uview Checkbox 复选框每一项增加删除功能
  4. 从寻找谷神星的过程,谈最小二乘法实现多项式拟合
  5. 大道至简第七、八章读后感
  6. 刷脸支付微信支付宝小程序可以营销活动
  7. 任正非回忆华为港湾“战争与和平”
  8. ntp和chrony
  9. 如何向外行解释你为什么想打产品经理?
  10. Vue插件视频播放插件