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. Spring Data Redis入门示例:字符串操作(六)

    Spring Data Redis对字符串的操作,封装在了ValueOperations和BoundValueOperations中,在集成好了SPD之后,在需要的地方引入: // 注入模板操作实例 ...

  2. 工作流activi链接地址

    http://topmanopensource.iteye.com/blog/1313865

  3. 最近公共祖先-三(RMQ-ST)

    描述 上上回说到,小Hi和小Ho使用了Tarjan算法来优化了他们的"最近公共祖先"网站,但是很快这样一个离线算法就出现了问题:如果只有一个人提出了询问,那么小Hi和小Ho很难决定 ...

  4. ECSHOP二次开发文档【文件结构说明和数据库表分析】

    最近公司又把之前的ecshop进行二次开发,之前看过一些ecshop的东西,但是都过了很久差不多都忘完了,现在得把之前的重新捡回来,特此搜到这些文档,接下来的开发工作中会方便不少. Ecshop文件结 ...

  5. dell服务器快速设置idrac

    前提:将服务器专用的idrac网络接口,连接到网络上 1.登录到服务器(即被监控的服务器). 2.安装客户端工具 yum  install  OpenIPMI OpenIPMI-devel OpenI ...

  6. c++_方格填数(最新方法)

      方格填数 如下的10个格子 +--+--+--+ | | | |+--+--+--+--+| | | | |+--+--+--+--+| | | |+--+--+--+ (如果显示有问题,也可以参 ...

  7. 条款3:尽可能使用const(use const whenever possible)

    1.只要这(某值保持不变)是事实,就应该确实说出来,这样可以获得编译器的协助,确保这条约束不被违反. 2.keyword const 有很多种用法,但都简单易用. 2.1classes 外部修饰glo ...

  8. 【转】Unable to load native-hadoop library for your platform(已解决)

    1.增加调试信息寻找问题 2.两种方式解决unable to load native-hadoop library for you platform 附:libc/glibc/glib简介 参考: 1 ...

  9. python测试工具

    https://wiki.python.org/moin/PythonTestingToolsTaxonomy mac pip安装 https://blog.csdn.net/ywj_486/arti ...

  10. list、tuple、dict内部功能释义

    一.list内部功能释义 运用频次:☆☆☆☆☆ 1. append():列表末尾插入元素 [示例] >>> L1=[11,22,33] >>> L1.append( ...