万年历java
public void showTime(){
/*万年历 :
1900年1月20号是星期几?
1月1号是星期一
1月8号是星期一
1月15号是星期一
1%7 = 1
8%7 = 1
15%7 = 1
★: 1. 用日期数去%7可以得到星期数
1900年2月12号是星期几?
★: 2. 从1月1号 直到 2月12的总天数 % 7 得到星期数
★★★: 为什么要算星期几?因为在打印万年历的时候,需要知道一个月份的1号是星期几,才能正确打印之后的日期
★★★:2015年8月1号是星期几?
1900-1-1到2015-8-1的总天数 % 7 */
int year=2017;
int month=11;
double all=0;
//从1900-1-1到year的前一年的总天数
all=getAllYearDay(year);
//从year的1月到month的前一个月的总天数
all+=getAllMonthDay(year,month);
System.out.println("总日子共有:"+all+"天");
//获得当前month的1号的对应总天数,因为这个总天数可以确定1号打印的位置(星期几)
//获得1号是星期几的数字,因为这个week数字确定1号前面的空格个数
int week=(int) (all%7);
//打印表头和1号之前的空格部分
for (int j = 0; j < week; j++) {
System.out.print(0+"\t");
}
//开始打印月历,但是你要获得该月到底要打印多少天
//开始循环打印,如果是星期天则换行
int dates=getMonthDay(year,month);
for (int i = 1; i < dates; i++) {
System.out.print(i+"\t ");
if((i+week)%7==0){
System.out.println();
}
}
}
//得到某月有多少天
int getMonthDay(int year,int month){
int dates=0;
for (int i = 1; i < month; i++) {
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12){
dates=31;
}else if( i==2 && (year % 4==0 && year % 100 != 0 ||year % 400 == 0) ){
dates=29;
}else if( i==2 && !(year % 4==0 && year % 100 != 0 ||year % 400 == 0) ){
dates=28;
}else{
dates=30;
}
}
return dates;
}
//从year的1月到month的前一个月的总天数
int getAllMonthDay(int year,int month){
int all=0;
for (int i = 1; i < month; i++) {
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12){
all+=31;
}else if( i==2 && (year % 4==0 && year % 100 != 0 ||year % 400 == 0) ){
all+=29;
}else if( i==2 && !(year % 4==0 && year % 100 != 0 ||year % 400 == 0) ){
all+=28;
}else{
all+=30;
}
}
return all;
}
//从1900-1-1到year的前一年的总天数
double getAllYearDay(int year){
double all=0;
for (int i = 1900; i < year; i++) {
if( i % 4==0 && i % 100 != 0 ||i % 400 == 0){
all+=366;
}else{
all+=365;
}
}
return all;
}
打印结果:
觉得有用的朋友希望可以帮忙“赞”一下哟(赠人玫瑰手有余香),谢谢^_^
万年历java的更多相关文章
- 万年历---java版
程序难点 : 1. 每年每个月有多少天? 2. 每个月的1号是星期几? 3. 每年的2月份是多少天? 难点解析 : 1. 每年每个月除去1 3 5 7 8 10 12是31天以外, 其他月份(除去2月 ...
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- 小JAVA大世界之万年历
import java.util.Scanner; public class Calendar { public static void main(String[] args) { // 万年历 in ...
- 算法,java代码实现打印万年历
万年历 以1900年1月1号星期一为时间原点 星期日 第一天 星期一 第二天 星期二 第三天 星期三 第四天 星期四 第五天 星期五 第六天 星期六 第七天 1.计算出当前日 ...
- Java流程控制练习--万年历
Java流程控制练习--万年历 标签: Java入坑之旅 0x01. 打印倒三角和正三角 public static void main(String[] args) { // TODO Auto-g ...
- 用java进行简单的万年历编写
import java.util.Scanner; public class PrintCalendarDemo1 { public static void main(String[] args) { ...
- java 实现万年历
曾经初学java写万年历,都是採用主要的算法求出是否闰年闰月 计算公式例如以下 int year = 2014, month = 8, total = 0; if (month == 1 || mon ...
- java万年历
import java.util.Scanner; public class perpetualCalendar { public static void main(String[] args) { ...
- java——万年历
package oop; import java.util.Scanner; public class 万年历 { public static void main(String[] args) { / ...
随机推荐
- 我的第一个python web开发框架(5)——开发前准备工作(了解编码前需要知道的一些常识)
中午吃饭时间到了,小白赶紧向老菜坐的位置走过去. 小白:老大,中午请你吃饭. 老菜:哈哈...又遇到问题了吧,这次得狠狠宰你一顿才行. 小白:行行行,只要您赏脸,米饭任吃,嘻嘻,我们边走边聊. ... ...
- html5获取用户当前的地理位置,即经纬度。
$("document").ready(function(){ getMap(); }); function getMap(){ // 百度地图API功能 var map = ne ...
- Linux下搭建tomcat和jre的环境
1.下载linux版本的tomcat和jre tomcat下载:http://pan.baidu.com/s/1nt7D87J: jre下载:http://pan.baidu.com/s/1sj4hA ...
- Template7插入动态模板
要完成的效果如下图 其中下面添加出来的订单号和订单总价可以看作是接口请求的数据 实现步骤: 1 下载template7:https://github.com/nolimits4web/template ...
- tomcat 内存大小配置
Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个java虚拟机.JAVA程序启动时JVM都会分配一个初始内存和最大内存给这个应用程序.这个初始内存和最大内存在一定程度都会 ...
- WinForm 读写配置文件
//读配置文件 方法(1) //ConfigurationManager.RefreshSection("appSettings"); //强制重新载入 string settin ...
- springboot高并发redis细粒度加锁(key粒度加锁)
本文探讨在web开发中如何解决并发访问带来的数据同步问题. 1.需求: 通过REST接口请求并发访问redis,例如:将key=fusor:${order_id} 中的值+1: 2.场景: 设想,多线 ...
- 深圳--博雅互动 Android面试打酱油归来
公司在TCL工业园E4,坐地到西丽站,那边在修路,不好走.B796公交站台在A出口的反方向,还要顺着施工的屏障打个弯,在西丽法院1上车.公司那边比较偏了,附近只有两趟公交.办公地点在10楼,出电梯就可 ...
- [置顶]
一个demo学会c#
学习了c#4.5高级编程这本书,自己喜欢边学边总结边写demo,所以写了这篇文章,包含了大部分的c#编程知识.让你一个demo掌握c#编程,如果有问题可以留言. 此demo主要包括五个文件:Stude ...
- iOS 简单socket连接
- (void)CreateSocket{ NSString *host = [self.realStreamDict objectForKey:@"StreamSeverIP"] ...