public class Permanent {

public static boolean isLeapYear(int year){//能被4整除但不能被100整除。或者能被400整除

boolean leapYear = false;

if((year % 100 == 0 && year % 400 == 0)||(year % 100 != 0 && year % 4 == 0)){

leapYear = true;

}

return leapYear;

}

public static int countDays(int year){//选个基准2015年1月1日,星期四

int countDays = 0;

int beginYear =year > 2015 ? 2015 : year;

int endYear = year > 2015 ?

year : 2015;



for(int i = beginYear;i < endYear;i++ ){

if(isLeapYear(i)){

countDays += 366;

}else{

countDays += 365;

}

}

return countDays;



}

public static void showCaledar(int year){

int days = countDays(year);

int weekDay = days % 7;

if(year > 2015){

weekDay = (weekDay + 4) % 7;

}else{

weekDay = (11 -weekDay) % 7;

}

String[] monthLabels = new String[]{"January","February","March","April","May","June","July","August","September","October","November","December"};

String[] weekLabels = new String[]{"Sun","Mon","Tur","Wen","Thr","Fra","Sat"};

int[] monthDay = {31,28,31,30,31,30,31,31,30,31,30,31};

for(int i = 0;i < 12;i++){

System.out.println("\n"+monthLabels[i]);

for(String weekLabel : weekLabels){ //每一周的标签

System.out.print(weekLabel + " ");

}

System.out.println(); //下一行

for(int j = 0; j < weekDay; j++){//找到第一个日期

System.out.print(" ");

}

if(isLeapYear(year)){

monthDay[1] = 29;

}else{

monthDay[1] = 28;

}

for(int k = 1;k <= monthDay[i];k++){

if((k + weekDay - 1) % 7 == 0){

System.out.println();

}

if(k < 10){ //这里是对齐的问题

System.out.print(k + " ");

}else{

System.out.print(k + " ");

}



}

weekDay = (weekDay + monthDay[i]) % 7;

}

}



public static void main(String[] args) {

showCaledar(2014);

}



}

输入年份,然后打印出该年的万年历,以及标识出当天日期。相似于linux下的cal -y结果。的更多相关文章

  1. JS 输入年份,再输入月份,弹出这个月有多少天?

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. Java50道经典习题-程序19 输入行数打印菱形图案

    题目:根据用户输入的行数打印菱形图案,若用户传入的是为偶数则提示用户重新输入,例如输入数字7打印出如下菱形图案   *  *** ************ *****  ***   *分析:先把图形分 ...

  3. java 通过控制台输入的数字打印菱形字母

    package com.rui.test; import java.util.Scanner; /** * @author sunshine * @version 1.0 * @date:2015年1 ...

  4. 【VBA编程】03.判断输入年份是否是闰年

    通过输入月份,判断是否是闰年 [代码区域] Sub 判断闰年() Dim year As Integer '用于保存输入的年份 year = CInt(InputBox("请输入需要判断的年 ...

  5. 代码实现从键盘接收一个字符串, 程序对其中所有字符进行排序,例如键盘输入: helloitcast程序打印:acehillostt

    package com.loaderman.test; import java.util.Comparator; import java.util.Scanner; import java.util. ...

  6. java输入年份和月份,输出天数

    import java.util.*; public class Demo { public static void main(String[] args){ int days = 0; Scanne ...

  7. windows下编辑过的文件在Linux下用vi打开行尾会多出一个^M符号

    一般情况下,windows下编辑过的文件在Linux下用vi打开行尾会多出一个^M符号,如下图: 这是因为Windows等操作系统用的文本换行符和UNIX/Linux操作系统用的不同,Windows系 ...

  8. 第三章 用SDK编译出第一个在Linux下的软件界面

    第三章 用SDK编译出第一个在Linux下的软件界面 先创建一个工程目录“mkdir project1”,进入目录,创建main.cpp文件,编写代码如下: 代码内容暂时可以先不理解,先让程序跑起来再 ...

  9. Linux下追踪函数调用,打印栈帧

    事情的起因是这样的,之前同事的代码有一个内存池出现了没有回收的情况.也就是是Pop出来的对象没有Push回去,情况很难复现,所以在Pop里的打印日志,跟踪是谁调用了它,我想在GDB调试里可以追踪调用的 ...

随机推荐

  1. Eclipse 总是在编译的时候卡住

    之前在开发Unieap项目的时候都是很正常,突然有一天早上总是出现Eclipse在编译的时候卡到34%的位置. 解决办法: 点击停止校验,一直卡在那里,首先在任务管理器杀死eclipse和javaw进 ...

  2. [IOS初学]ios 第一篇 storyboard 与viewcontroller的关系 - Zoe_J

    时间 2014-07-27 16:08:00  博客园-所有随笔区 原文  http://www.cnblogs.com/zoe-j/p/3871501.html 主题 StoryBoard 学习了一 ...

  3. Educational Codeforces Round 59 (Rated for Div. 2) (前四题)

    A. Digits Sequence Dividing(英文速读) 练习英语速读的题,我还上来昏迷一次....只要长度大于2那么一定可以等于2那么前面大于后面就行其他no 大于2的时候分成前面1个剩下 ...

  4. 解决 【xshell 5 不能使用退格键和Delete建】的问题

    ###按照图片操作即可 1,打开[文件],选择[打开]选项 2.在会话中,打开[属性] 3.点击左边[终端]下的[键盘]选项,按照如下设置 即可.

  5. 用Jenkins构建项目实战

    登录Jenkins,新建任务 输入一个任务名称,选择一个项目类型 使用自定义工作空间:使该项目独立于系统的工作空间 自动从Git下载源码,点击添加可以增加凭证 日程表的参数: 第一个参数代表的是分钟 ...

  6. java io-----转

    https://blog.csdn.net/zch19960629/article/details/77917739 输入输出的重要性:     输入和输出功能是Java对程序处理数据能力的提高,Ja ...

  7. 【HDU 1402】A * B Problem Plus(FFT)

    Problem Description Calculate A * B. Input Each line will contain two integers A and B. Process to e ...

  8. ubuntu修改apt-get源为国内镜像源

    1.原文件备份   sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak   2.编辑源列表文件   sudo vim /etc/apt/so ...

  9. sysctl.conf文件配置详解

    ############################# net.inet.ip.sourceroute=0 net.inet.ip.accept_sourceroute=0 ########### ...

  10. Flask 架构 --xunfeng实例研究

    文件结构 │ Config.py # 配置文件 │ README.md # 说明文档 │ Run.bat # Windows启动服务 │ Run.py # webserver │ Run.sh # L ...