万年历(实现从键盘输入1900年之后的任意的某年、某月,输出该月的日历)
2018-01-08 09:40
921 查看
import java.util.Scanner;
public class Test22{
public static void main(String [] args){
int year;//保存输入的年
int month;//保存输入的月
int days=0;//保存月份的天数
int totalDays=0;//存放总的天数差
boolean isRn;//判断输入的年是否是闰年,是的话true,不是false
Scanner input=new Scanner(System.in);
System.out.println("***************万年历**************");
System.out.println("请输入年:");
year=input.nextInt();
System.out.println("请输入月:");
month=input.nextInt();
if(year%400==0||(year%4==0&&year%100!=0)){
isRn=true;//代表闰年
}else{
isRn=false;//代表平年
}
if(isRn){
System.out.println(year+"是闰年");
}else{
System.out.println(year+"是平年");
}
//计算年的总天数
for(int i=1900;i<year;i++){
if(i%400==0||(i%4==0&&i%100!=0)){
totalDays+=366;
}else{
totalDays+=365;
}
}
//计算你输入月份的天数
for(int i=1;i<=month;i++){
switch(i){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days=31;
break;
case 2:
if(isRn){
days=29;
}else{
days=28;
}
break;
case 4:
case 6:
case 9:
case 11:
days=30;
break;
default:
System.out.println("输入的月份有误");
break;
}
//累加求和,输入月份的天数保存到days变量中,但不累加进来
if(i!=month){
totalDays+=days;
}
}
//求这个月的第一天是星期几.也就是输出的\t的个数
int beforeDays=0;
beforeDays=1+totalDays%7;
if(beforeDays==7){
beforeDays=0;
}
//打印输出
System.out.println("星期天\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");
//先打印输出\t的个数
for(int i=0;i<beforeDays;i++){
System.out.print("\t");
}
for(int i=1;i<=days;i++){
System.out.print(i+"\t");
if((beforeDays+i)%7==0){
System.out.println();
}
}
}
}
public class Test22{
public static void main(String [] args){
int year;//保存输入的年
int month;//保存输入的月
int days=0;//保存月份的天数
int totalDays=0;//存放总的天数差
boolean isRn;//判断输入的年是否是闰年,是的话true,不是false
Scanner input=new Scanner(System.in);
System.out.println("***************万年历**************");
System.out.println("请输入年:");
year=input.nextInt();
System.out.println("请输入月:");
month=input.nextInt();
if(year%400==0||(year%4==0&&year%100!=0)){
isRn=true;//代表闰年
}else{
isRn=false;//代表平年
}
if(isRn){
System.out.println(year+"是闰年");
}else{
System.out.println(year+"是平年");
}
//计算年的总天数
for(int i=1900;i<year;i++){
if(i%400==0||(i%4==0&&i%100!=0)){
totalDays+=366;
}else{
totalDays+=365;
}
}
//计算你输入月份的天数
for(int i=1;i<=month;i++){
switch(i){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days=31;
break;
case 2:
if(isRn){
days=29;
}else{
days=28;
}
break;
case 4:
case 6:
case 9:
case 11:
days=30;
break;
default:
System.out.println("输入的月份有误");
break;
}
//累加求和,输入月份的天数保存到days变量中,但不累加进来
if(i!=month){
totalDays+=days;
}
}
//求这个月的第一天是星期几.也就是输出的\t的个数
int beforeDays=0;
beforeDays=1+totalDays%7;
if(beforeDays==7){
beforeDays=0;
}
//打印输出
System.out.println("星期天\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");
//先打印输出\t的个数
for(int i=0;i<beforeDays;i++){
System.out.print("\t");
}
for(int i=1;i<=days;i++){
System.out.print(i+"\t");
if((beforeDays+i)%7==0){
System.out.println();
}
}
}
}
相关文章推荐
- 7.4.采用穷举法,用函数编程实现计算两个正整数的最小公倍数的函数,在主函数中调用该函数计算并输出从键盘任意输入的两个数的最小公倍数。
- 从键盘任意输入10个整数,用函数编程实现将其中最大数与最小数的位置对换后,再输出调整后的数组。
- 三种算法实现:从键盘输入任意正整数,从低位到高位逐位输出各位数字
- 输出某年某月的日历页,通过 键盘输入将年份和月份时间传递到程序中。
- 12月27日任务 从键盘任意输入三角形的三边,判断是否能构成三角形,若能,则计算三角形的面积并输出,若不能,则输出不能构成三角形
- Shell实现从键盘输入年份和月份,显示该年、月的日历
- 关于一道J笔试或者机试题的Java实现:从键盘输入一串字符,翻转后输出(要求不使用string相关类即对象)
- 53.从键盘输入任意一串字符串,程序输出同样的一串字符,要求输出字符串中大小写相互转化,其他符号不变。如输入“a123BxC”,则输出“A123bXc”
- 从键盘上任意输入一个数,并输出相应行数的*号,例如输入5,则显示5行*号组成一个三角形
- 从键盘输入某个十进制小数或整数,转换成对应的二进制小数并输出。 (查询十进制小数转换成二进制小数的算法,使用循环来实现。 最多保留小数位后7位数字即可)算法
- java实现将一个键盘输入的阿拉伯数字转化成中文输出
- 5.1,从键盘任意输入一个实数,不使用计算绝对值函数编程计算并输出该实数的绝对值。
- C语言实验:输入任意一个年份和月份,输出该月份的公历日历
- C语言实验:输入任意一个年份和月份,输出该月份的公历日历
- 编写一个多线程函数实现对数组排序,要求: 1.至少用两个线程 2.数组的元素值可以事先定义好,或者可以从键盘输入(增加一个线程)。 3.用一个线程对数组排序,用另一个线程输出排序结果。 4.保证先排好序,再输出。
- 从键盘输入任意字符,如果是整形则输出true,否则输出false
- 输入任意字符剔除重复的字符之后输出
- 编程实现统计某年某月份的天数。 例如:输入:2017.7 输出:31天
- 题目: 从键盘输入若干个正整数, 按从小到大的顺序输出. 输入负数表示输入结束. 用链表实现.
- 定义一个List集合并实例化对应的实现类对象。循环输入任意个整数,输入0结束输入循环,对集合中的数据进行从大到小的排序后输出