【java】打印月历
2017-12-05 17:11
106 查看
已知1900年1月1日是星期一
输入年份月份,打印出日历
package exercise;
import java.util.*;
import java.lang.*;//Math.PI
public class test1{
public static void main(String[] args){
printYearAndMouth();
printTitle();
int sum=sumofyear()+sumofmouth();
sum++;
printContent(sum%7);
}
private static int year=-1;
private static int mouth=-1;
static int[] mouthday={31,28,31,30,31,30,31,31,30,31,30,31};
//用户输入年份月份
private static void printYearAndMouth(){
Scanner in= new Scanner(System.in);
System.out.print("请输入年份:");
year=in.nextInt();
System.out.print("请输入月份:");
mouth=in.nextInt();
}
//计算1900-year的天数
private static int sumofyear(){
int sum=0;
for(int i=1900;i<year;i++){
sum+=365;
if(isLeapYear(i))
sum+=1;
}
return sum;
}
private static boolean isLeapYear(int year){
return year%400==0||year%4==0&&year%100!=0;
}
//mouth前几个月的天数和
private static int sumofmouth(){
int sum=0;
for(int i=0;i<mouth-1;i++)
sum+=mouthday[i];
if(mouth>=3&&isLeapYear(year))
sum++;
return sum;
}
//显示标题和星期
private static void printTitle(){
String[] mouthof={"1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"};
System.out.println("\t\t"+year+"\t\t"+mouthof[mouth-1]);
String[] week={"星期一","星期二","星期三","星期四","星期五","星期六","星期日"};
for(int i=0;i<week.length;i++)
System.out.print(week[i]+"\t");
System.out.println();
}
//根据mouth第一天是星期几打印月份内容
private static void printContent(int day){
int step=0;//前面的空格
if(day==0)//星期日
step=6;
else
step=day-1;
for(int i=0;i<step;i++)
System.out.print("\t");
for(int i=0;i<mouthday[mouth-1];i++){
System.out.print(i+1);
if((day+i)%7!=0)
System.out.print("\t");
else
System.out.println();
}
}
}
输入年份月份,打印出日历
package exercise;
import java.util.*;
import java.lang.*;//Math.PI
public class test1{
public static void main(String[] args){
printYearAndMouth();
printTitle();
int sum=sumofyear()+sumofmouth();
sum++;
printContent(sum%7);
}
private static int year=-1;
private static int mouth=-1;
static int[] mouthday={31,28,31,30,31,30,31,31,30,31,30,31};
//用户输入年份月份
private static void printYearAndMouth(){
Scanner in= new Scanner(System.in);
System.out.print("请输入年份:");
year=in.nextInt();
System.out.print("请输入月份:");
mouth=in.nextInt();
}
//计算1900-year的天数
private static int sumofyear(){
int sum=0;
for(int i=1900;i<year;i++){
sum+=365;
if(isLeapYear(i))
sum+=1;
}
return sum;
}
private static boolean isLeapYear(int year){
return year%400==0||year%4==0&&year%100!=0;
}
//mouth前几个月的天数和
private static int sumofmouth(){
int sum=0;
for(int i=0;i<mouth-1;i++)
sum+=mouthday[i];
if(mouth>=3&&isLeapYear(year))
sum++;
return sum;
}
//显示标题和星期
private static void printTitle(){
String[] mouthof={"1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"};
System.out.println("\t\t"+year+"\t\t"+mouthof[mouth-1]);
String[] week={"星期一","星期二","星期三","星期四","星期五","星期六","星期日"};
for(int i=0;i<week.length;i++)
System.out.print(week[i]+"\t");
System.out.println();
}
//根据mouth第一天是星期几打印月份内容
private static void printContent(int day){
int step=0;//前面的空格
if(day==0)//星期日
step=6;
else
step=day-1;
for(int i=0;i<step;i++)
System.out.print("\t");
for(int i=0;i<mouthday[mouth-1];i++){
System.out.print(i+1);
if((day+i)%7!=0)
System.out.print("\t");
else
System.out.println();
}
}
}
相关文章推荐
- Java打印月历GUI
- 剑指offer(java代码)——从尾到头打印链表
- java打印文件树的代码
- 按之字形顺序打印二叉树(java版)
- 两个升序表,打印L中那些由P所指定的位置上的元素 java实现
- java代码实现打印菱形
- java打印三角,乘法口诀
- Java输出打印工具类封装的实例
- java不能打印
- java使用佳博打印机打印条形码
- 递归文件夹并树形打印 分类: Java 2015-01-22 21:52 217人阅读 评论(0) 收藏
- 控制台异常打印java.lang.OutOfMemoryError: PermGen space
- 关于JAVA程序中的菱形打印问题
- 顺时针打印矩阵java实现
- java经典算法_019打印三角形(空心,实心)
- java远程通讯轻量级HttpInvoker实现理赔调用承保核心系统打印出险前保单实现
- 利用java实现打印菱形
- 剑指offer-chapter3-面试题12-打印1到最大的n位数(java)
- java 打印十字图
- Java编程打印购物小票实现代码