Java基本语法_循环练习系列(二)——万年历
写万年历大致可以分为以下几个步骤:
1.根据用户输入的年份判断该年是否是闰年。
2.根据用户输入的月份计算该月的天数。
3.计算输入的年份之前的总天数。
4.计算输入的月份之前的天数。
5.计算该月的第一天是星期几,然后输出日历。
将这个大工程分为这几步就简单多了,可以很好的学习循环语句哦。
public class Test4 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("------万年历------");
System.out.print("请输入要查询的年份:");
Scanner input=new Scanner(System.in);
int year=input.nextInt();
boolean runNian;
int totalDays=0;
int days=0;
//判断改年为闰年还是平年
if((year%4==0&&year%100!=0)||year%400==0){
runNian=true;
}else{
runNian=false;
}
if(runNian){
System.out.println(year+"年是闰年");
}else{
System.out.println(year+"年是平年");
}
//计算该年之前一共的天数(从公元1年开始到输入年份前一年)
for(int i=1;i<year;i++){
if((i%4==0&&i%100!=0)||i%400==0){
totalDays+=366;
}else{
totalDays+=365;
}
}
System.out.println(year+"年之前一共有"+totalDays+"天");
//判断输入的月份有多少天,并且计算该月之前一共的天数
System.out.print("请输入要查询的月份:");
int month=input.nextInt();
int beforeDays=0;
int i=1;
do{
switch(i){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:days=31;break;
case 2:
if(runNian){
days=29;
}else{
days=28;
}
break;
default:
days=30;
break;
}
if(i<month){
beforeDays=beforeDays+days;
}
i++;
}while(i<=month);
totalDays+=beforeDays;
System.out.println(year+"年"+month+"月之前一共有"+beforeDays+"天");
System.out.println("该月有"+days+"天");
//输出日历,0代表星期日,1~6分别代表星期一到星期六(重点,以后注意看,这段是我写时卡克的地方)
System.out.println("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");
int s=(totalDays+1)%7;
//输出空格
for(int nulNum=0;nulNum<s;nulNum++){
System.out.print("\t");
}
//在输完空格的位置上输出本月的日历
for(int j=1;j<=days;j++){
//该月第一天之前要输出的空格数,如果是星期五,前面输出5个空格
System.out.print(j+"\t");
if((totalDays+j)%7==6){
System.out.println();
}
}
}
}
Java基本语法_循环练习系列(二)——万年历的更多相关文章
- Java基本语法_循环练习系列(一)——模拟双色球
目前正在自学java中,学完循环这一块,简单写几个例子,使之更加熟练掌握循环语句和条件语句. 简述一下要这段代码要完成的任务: /*有33个红色球,16个蓝色球. 在33个里选6个 ,16个里选1个. ...
- 小白的java学习之路 “ 循环结构(二)”
一.for 循环 语法: for(表达式一;表达式二;表达式三){ 循环操作 } 表达式一:参数初始化 表达式二:条件判断 表达式三:更新循环变量 执行流程: 步骤一:执行表达式一.初始化参数 步骤二 ...
- Java 程序测试_循环语句中的break和continue
package test; public class Loop_Statement { public static void main(String [] args) { String[] newba ...
- java‘小秘密’系列(二)---Integer
java'小秘密'系列(二)---Integer 前言:本系列的主题是平时容易疏忽的知识点,只有基础扎实,在编码的时候才能更注重规范和性能,在出现bug的时候,才能处理更加从容. 目录 java'小秘 ...
- java基础解析系列(二)---Integer
java基础解析系列(二)---Integer 前言:本系列的主题是平时容易疏忽的知识点,只有基础扎实,在编码的时候才能更注重规范和性能,在出现bug的时候,才能处理更加从容. 目录 java基础解析 ...
- 062 01 Android 零基础入门 01 Java基础语法 07 Java二维数组 01 二维数组应用
062 01 Android 零基础入门 01 Java基础语法 07 Java二维数组 01 二维数组应用 本文知识点:二维数组应用 二维数组的声明和创建 ? 出现空指针异常 数组的名字指向数组的第 ...
- 【JAVA编码】 JAVA字符编码系列二:Unicode,ISO-8859,GBK,UTF-8编码及相互转换
http://blog.csdn.net/qinysong/article/details/1179489 这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记 ...
- java基础语法(二)--单列模式
java基础语法(二)--单列模式 /** * 功能:单列模式 * @author Administrator * */ public class SingletonTest { public sta ...
- Java问题记录——循环里的二次判断与状态更新
Java问题记录——循环里的二次判断与状态更新 摘要:本文主要记录了在循环操作时可能出现的问题. 问题重现 在使用循环结构时,如果使用了定时任务,或者代码会多次调用循环结构,可能会导致有些对象会被循环 ...
随机推荐
- [转]VisualSVN错误 Cannot query proxy blanket解决办法
最近重新做了一下系统,在安装和使用svn过程中遇到了一些问题,记下备忘. 第一次安装好系统之后,安装VisualSVN遇到报错: Custom action InstallWMISchemaExcut ...
- sql语句增加字段 索引
alter table order_info add area varchar(50) create index group_compar on ry_order (group_compar); ...
- spark(2.2) - spark-shell RDD编程
[基本操作] 1* 从文件系统中加载数据创建RDD -> 本地文件系统 ->HDFS 2* 转换操作 [ 会创建新的RDD ,没有真正计算 ] >> filter() > ...
- 【转】php通过curl跨域向asp.net服务器上传文件及参数
转:http://blog.sina.com.cn/s/blog_13331dce50102vq32.html 这是一个由php通过调用asp.net接口向asp.net服务器post上传文件及参数并 ...
- (原创)Codeforces Round #550 (Div. 3) D. Equalize Them All
D. Equalize Them All time limit per test 2 seconds memory limit per test 256 megabytes input standar ...
- ASP.NET-GridView分页排序显示
前期我们分别介绍了gridview怎么进行固定表多行数据显示,以及怎么设计花样表头.下面我们介绍怎么利用gridview进行分页显示的同时还可以进行排序显示. 显示效果 前端DEMO <span ...
- Chrome 67 以后版本无法离线安装crx插件
原文链接:https://blog.csdn.net/wanwuguicang/article/details/80716178 升级了Chrome后无法离线安装扩展 如图: 谷歌自Chrome 67 ...
- P2617 Dynamic Rankings 动态主席树
\(\color{#0066ff}{ 题目描述 }\) 给定一个含有n个数的序列a[1],a[2],a[3]--a[n],程序必须回答这样的询问:对于给定的i,j,k,在a[i],a[i+1],a[i ...
- BZOJ 3028: 食物
\(\color{#0066ff}{ 题目描述 }\) 明明这次又要出去旅游了,和上次不同的是,他这次要去宇宙探险!我们暂且不讨论他有多么NC,他又幻想了他应 该带一些什么东西.理所当然的,你当然要帮 ...
- P1114 “非常男女”计划
题意:给你一个01串,求满足0和1总数相等的最大字串 $n\ \le\ 10^5$ 1.$O(n^3)$枚举起点终点,统计判断是否成立 2.$O(n^2)$先$O(n)$时间计算01个数的前缀和, ...