java中日历代码的实现
- 1 import java.util.Scanner;
- com.lv.calendarWatch//包名
- /*
- * 需求:输入一个年份和月份 ,显示当前月日情况 ,星期数要对应准确
- * 1.1900年1月1号开始
- * 2.星期 : 直接用总天数对7求余数
- * 3.以\t来个开
- */
- public class Demo9 {
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Demo9 demo = new Demo9();
- Scanner keyInput =new Scanner(System.in);
- System.out.println("请输入你想要查的年");
- int key1 = keyInput.nextInt();
- System.out.println("请输入你想要查的月份");
- int key2 = keyInput.nextInt();
- demo.show(key1,key2);
- }
- //定义一个工具方法:判断平年还是闰年
- public boolean isLeapYear(int year){
- if(year % 400 == 0 || (year % 4==0 && year % 100 != 0)){
- return true;
- }
- return false;
- }
- //计算输入年份下,月份的总天数 1900
- public int getTotalDateFrom(int year , int month){
- //1.定年份的总天数
- int totalDate = 0;//1900到你输入的年份的总天数 2016 1900 - 1903 = 3
- for(int i= 1900 ; i < year ;i++){
- if(isLeapYear(i)){ // 闰年
- totalDate += 366;
- }else {
- totalDate += 365;
- }
- }
- //2.计算月份的天数
- for(int i = 1 ; i< month ;i++){
- totalDate += getDayOfMonth(year, i);
- }
- 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 6:
- 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 count = 0; //定义一个计数
- for(int i = 1; i<=countSpac; i++){
- count++;
- System.out.print("\t");
- }
- //2.打印日期
- for(int i = 1 ; i<=getDayOfMonth(year, month);i++){
- if(count % 7 == 0){
- System.out.println();
- }
- count++;
- 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中日历代码的实现的更多相关文章
- 【Java基础】2、Java中普通代码块,构造代码块,静态代码块区别及代码示例
Java中普通代码块,构造代码块,静态代码块区别及代码示例.Java中普通代码块,构造代码块,静态代码块区别及代码示例 执行顺序:静态代码块>静态方法(main方法)>构造代码块>构 ...
- Java 中静态代码块初始化问题测试
Java 中静态代码块初始化问题测试 原创 情况一:变量是 static final 修饰的"编译期常量",如 public static final String a = &qu ...
- Java中普通代码块,构造代码块,静态代码块区别及代码示例
//执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 其中静态代码块只执行一次.构造代码块在每次创建对象是都会执行. 1 普通代码块 1 //普通代码块 ...
- Java中普通代码块,构造代码块,静态代码块执行顺序
//执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 其中静态代码块只执行一次.构造代码块在每次创建对象是都会执行. 1 普通代码块 1 //普通代码块 ...
- (转)java中静态代码块的用法 static用法详解
一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来 ...
- java中静态代码块的用法 static用法详解(转)
(一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序 ...
- java中的代码块执行顺序
/* 代码块:在Java中,使用{}括起来的代码被称为代码块. 根据其位置和声明的不同,可以分为 局部代码块:局部位置,用于限定变量的生命周期. 构造代码块:在类中的成员位置,用{}括起来的代码.每次 ...
- 关于java中普通代码块、构造代码块与静态代码块
1.普通代码块 public static void main(String[] args) { /*普通代码块: *直接定义在在方法或语句中出现”{普通代码的执行语句}“的就称为普通代码块. *普通 ...
- 【转】java中静态代码块的用法 static用法详解
原文网址:http://www.cnblogs.com/panjun-Donet/archive/2010/08/10/1796209.html (一)java 静态代码块 静态方法区别一般情况下,如 ...
随机推荐
- jqgrid在colModel中多次调用同一个字段值
Debug: 代码1: { name : 'input', index : 'input', width : 100, align : "center", formatter : ...
- BZOJ4546(原) : 三元组
设$f(x)=\sum_{x|d}p(d)$. 则$ans=\sum_{i=1}^n\sum_{j=1}^n\sum_{k=1}^n\mu(i)\mu(j)\mu(k)f(lcm(i,j))f(lcm ...
- mapreduce.framework.name
mapreduce.framework.name默认是local: <property><name>mapreduce.framework.name</name>& ...
- [转] linux 下查看一个进程运行路径的方法
http://blog.csdn.net/brioxu/article/details/5104736 在linux下查看进程大家都会想到用 ps -ef|grep XXX ps -aux | hea ...
- Codeforces Round #235 (Div. 2)C、Team
#include <iostream> #include <algorithm> using namespace std; int main(){ int n,m; cin & ...
- 读取和写入 文件 (NSFIleManger 与 NSFileHandle)
读取和写入 文件 //传递文件路径方法 -(id)initPath:(NSString *)srcPath targetPath:(NSString *)targetPath { self = [su ...
- 51Nod 1136 欧拉函数 Label:数论
对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目.此函数以其首名研究者欧拉命名,它又称为Euler's totient function.φ函数.欧拉商数等.例如:φ(8) = 4(Phi( ...
- BZOJ 1087 题解【状压DP】
1087: [SCOI2005]互不侵犯King Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3112 Solved: 1816[Submit][ ...
- IOS 网络请求方式
iOS开发中的网络请求 今天来说说关于iOS开发过程中的网络请求. 关于网络请求的重要性我想不用多说了吧.对于移动客户端来说,网络的重要性不言而喻.常见的网络请求有同步GET, 同步POST, 异 ...
- xcode 忽然无法真机调试
手机升级了系统后一直没有再进行真机调试,今天要去面试把手机插上后忽然显示iPhone(unavailable),选中自己的设备后运行发现弹出警告could not find developer dis ...