用java制作日历,想休息的时候看一看离周末还有几天!
呀!忙碌的每一天,都忘记了明天就是我们愉快周末了。今天没有朋友的闲聊的话,明天处在绷紧的状态呢!还有朋友提到,所有今天来跟大家分享一下用java来编写日历表,累了想休息了的时候,打开看看,还有几天到周末!那么我们来看一下代码,具体怎么实现吧!
public class Demo6 {
public static void main(String[] args) {
Demo6 demo = new Demo6();
demo.show(2016,11); //输入年和月份
}
//定义一个方法:判断是平年还是闰年
public boolean isLeapYear(int year) {
if (year%400==0 || (year%4==0 && year%100 !=0)) {
return true;
}
return false;
}
//计算输入年份,月份的总天数
public int getTotalDateFrom(int year, int month) {
int totalDate = 0;
for (int i = 1900; i < year; i++) {
//判断是闰年还是平年
if (isLeapYear(year)) {
totalDate += 366;
}else{
totalDate += 365;
}
}
//计算2月份的天数
for (int i = 1; i < month; i++) {
totalDate += getDayOfMonth(year, month);
}
return totalDate;
}
//返回一个天数
public int getDayOfMonth(int year,int month) {
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 4:
case 9:
case 11:
return 30;
case 2:
if (isLeapYear(year)) {
return 29;
} else {
return 28;
}
default:
return 30;
}
}
public int printSpace(int year, int month){
return getTotalDateFrom(year, month)%7;
}
public void print(int year, int month){
int countSpac = printSpace(year, month)+1; //空格的个数
int coun = 0; //定义一个计数
for (int i = 0; i < countSpac; i++) {
coun ++;
System.out.print("\t");
}
//打印日期
for (int i = 0; i < getDayOfMonth(year, month); i++) {
if (coun % 7 == 0) {
System.out.println();
}
coun++;
System.out.print(i+"\t");
}
}
public void show(int year, int month){
System.out.println(" **************"+year+"******"+month+"***************");
System.out.println("=======================================================");
System.out.println("日\t一\t二\t三\t四\t五\t六");
System.out.println("=======================================================");
print(year, month);
System.out.println();
}
}
实现效果如下:

用java制作日历,想休息的时候看一看离周末还有几天!的更多相关文章
- 一个想休息的线程:JVM到底是怎么处理锁的?怎么不让我阻塞呢?
我是一个线程,生活在JVM(Java虚拟机)中, 这一段日子过得有些无聊,整个世界似乎只有这一个人,天天忙着执行代码,想休息一下都很难. 我听说人类写的代码中有些特殊的地方,叫做临界区,比如synch ...
- 基于jQuery日历插件制作日历
这篇文章主要介绍了基于jQuery日历插件制作日历的相关资料,需要的朋友可以参考下 来看下最终效果图吧: 是长得丑了一点,不要吐槽我-.- 首先来说说这个日历主要的制作逻辑吧: ·一个月份最多有31天 ...
- CSS3制作日历
目标是制作如下面DEMO显示的一个日历效果: HTML Markup 先来看看其结构: <div class="calendar"> <span class=&q ...
- 【PHP】制作日历
本期本博主将讲述两种利用PHP制作日历的方法,由于PHP日期函数的便捷性,使得我们制作日历这一过程变得相当简单 问题描述: 1.取到当前日期,并着色显示:2.根据当前日期,判断本月有多少天,一号是周几 ...
- 大家好,我是一个JAVA初学者,想在这里记下自己学习过程中的点点滴滴,请多多关照
大家好,我是一个JAVA初学者,想在这里记下自己学习JAVA的点点滴滴,请多多关照. 以前一直在QQ空间里记录的,但感觉有些麻烦,而且有些东西自己理解的并不完善甚至都不正确,现在开始在这里重新记录,从 ...
- C# 正则表达式 和 JAVA表达式是想通的
正则表达式语法 也许有人会说,现在需要正则表达式去验证什么的话,直接在网上找不久一大片吗?还需要学什么啊! 是的,现在在网上找确实是一找一大片,但是,有时候我们也遇到这样的情况,就是我们在网上找的复制 ...
- IEnumerator<TItem>和IEnumerator Java 抽象类和普通类、接口的区别——看完你就顿悟了
IEnumerable 其原型至少可以说有15年历史,或者更长,它是通过 IEnumerator 来定义的,而后者中使用装箱的 object 方式来定义,也就是弱类型的.弱类型不但会有性能问题,最主要 ...
- 用最笨的方法实现java控制台日历打印
如果想用户自定义输入日期查询,可以通过Calendar的set方法和Scanner方法设置 Calendar类简单使用:https://blog.csdn.net/weixin_43670802/ar ...
- Java简易日历的实现
import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; imp ...
随机推荐
- [Windows Server] 在 Windows Server 2012 上安裝 .NET Framework 3.5 - 摘自网络
官方: Applies To: Windows 8, Windows 8.1 For a Windows Server® 2012 core installation that is not conn ...
- oracle中使用sql查询时字段为空则赋值默认
转至:http://www.th7.cn/db/Oracle/201501/86125.shtml oracle 通过 nvl( )函数sql 查询时为 空值 赋默认值 oracle 函数介绍之nvl ...
- 如何生成一副Poker
import java.util.LinkedList;import java.util.Random;//扑克类class Poker{ String color;//花色 String ...
- DoctorNote医生处方笔记开发记录
1.开发背景 一个开诊所的中医朋友,希望我能给他开发一个记录病人姓名和处方的Android手机app,以便查询病人每次就诊信息,比如上一次的处方,以前他要找个病人上一次的就诊处方,几乎要翻遍一叠厚厚的 ...
- 遇到Class Not registered的COM异常怎么办
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:遇到Class Not registered的COM异常怎么办.
- IOS 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: URLString'
转载自:http://i.cnblogs.com/EditPosts.aspx?postid=4012011 今天想写一个请求的天气,好的,废话不多说,先贴代码: 使用AFNetWorking 发送g ...
- iOS开发之地图代理不起作用(提示vImage decode failed, falling back to CG path.)
项目中用到了地图相关的东西,就把曾经的demo搬了出来,结果发现直接执行之前的demo没有问题,在xcode5下新建项目再把代码粘贴过来就会提示 May 5 11:36:21 infomedia-iP ...
- [OGRE]基础教程来七发:来谈一谈缓冲绑定
上一章我们处理监听的方案是,每一帧只处理一次. 这一次,当鼠标键盘的事件发生时,我们会立即处理它. 这里只是对缓冲输入的一个简单介绍,而不是完整的如何使用OIS的教程. 若想了解更多内容,请查阅相关的 ...
- 硬菜点播台 | MySQL阿里实践经典案例之参数调优最佳实践
http://mp.weixin.qq.com/s?__biz=MzA4NjI4MzM4MQ%3D%3D&mid=512708319&idx=1&sn=6af5f424d7cd ...
- Windows8下如何使用命令行--转载
原文地址:http://jingyan.baidu.com/article/a501d80ce26fecec630f5ee0.html 命令行可用于实现一些没有图形界面的操作,然而windows8下的 ...