面向过程的java日历

  1 import java.util.Scanner;
  2
  3 public class MyCalendar {
  4     /*
  5      * 从控制台输入 × × × ×年× ×月,从控制台输出该月日历 (1900年1月1日是星期一)
  6      *
  7      */
  8
  9     public static void main(String[] args) {
 10         Scanner sc = new Scanner(System.in);
 11
 12         // 获得输入的那一年的天数
 13 //    public void isYear() {
 14         System.out.println("请输入年");
 15         int getYear = sc.nextInt();// 获得年
 16         int isR = 0;// 是闰年计数
 17 //        判断几个平年几个闰年
 18         for (int i = 1900; i < getYear; i++) {
 19 //            判断是否是闰年:能被4整除但不能被100整除;或者能被400整除
 20             if (i % 400 == 0 || (i % 4 == 0 && i % 100 != 0)) {
 21                 isR++;
 22             }
 23             // 到该年的一月一号有多少天
 24         }
 25         int allYearDay = isR * 366 + (getYear - 1900 - isR) * 365;
 26         // 判断输入的这一年是平年还是闰年
 27         int isRight = (getYear % 400 == 0 || getYear % 4 == 0 && getYear % 100 != 0) ? 366 : 365;
 28
 29 //    获得输入的那个月的天数
 30 //    public void isMonth() {
 31         System.out.println("请输入月");
 32         int getMonth = sc.nextInt();
 33 //        闰年2月:29天
 34 //        平年2月:28天
 35 //        口诀
 36 //        一三五七八十腊
 37 //        三十一天永不差
 38 //        四六九冬三十整
 39 //        平年二月二十八
 40 //        闰年二月把一加
 41 //        这里面的腊月指十二月
 42 //        冬指的是十一月
 43 //        闰年是年数除四能除尽的
 44 //        平年是除了闰年的年
 45 //        判断几个大月几个小月
 46         int allMonthDay = 0;
 47         int DayOf_getMonth = 0;
 48
 49         for (int i = 1; i <= getMonth; i++) {
 50             int day = 0;
 51             switch (i) {
 52             case 1:
 53             case 3:
 54             case 5:
 55             case 7:
 56             case 8:
 57             case 10:
 58             case 12:
 59                 day = 31;
 60                 break;
 61             case 4:
 62             case 6:
 63             case 9:
 64             case 11:
 65                 day = 30;
 66                 break;
 67             case 2:
 68                 if (isRight == 366) {
 69                     day = 29;
 70                 } else {
 71                     day = 28;
 72                 }
 73                 break;
 74             }// 算今年这几个月有多少天 不加上要的那个月的天数
 75             if (i == getMonth) {
 76                 // 得到输入那个月的天数
 77                 DayOf_getMonth = day;
 78
 79             } else {
 80                 allMonthDay += day;
 81
 82             }
 83         }
 84         // 算一下总天数 //出去输入的那个月
 85         int totalDays = allYearDay + allMonthDay;
 86 //        System.out.println(DayOf_getMonth);
 87 //        System.out.println(allYearDay);
 88 //        System.out.println(allMonthDay);
 89 //        System.out.println(totalDays);
 90         System.out.print("星期天\t" + "星期一\t" + "星期二\t" + "星期三\t" + "星期四\t" + "星期五\t" + "星期六\t");
 91         System.out.println();
 92         /*
 93          * 要算星期几,得有已知条件:如2014年1月1日是星期三,那么2015年1月1日是星期几
 94          * 计算方法:先求出天数,(也就是2014年1月1日过多少天是2015年1月1日:365天)
 95          * 再求余数,(则365÷7=52周余1天),最后算日期:余数+星期几=1+3=4,也就是星期四
 96          */
 97         int firstDay = totalDays % 7 + 1;// firstDay是星期几
 98         // 记一下空格数,用来换行
 99         int isFlag = 0;
100         for (int j = 0; j < firstDay; j++) {
101             isFlag++;
102             System.out.print(" \t");
103         }
104         for (int m = 1; m <= DayOf_getMonth; m++) {
105             if (m < 10) {
106                 System.out.print(" " + m + "\t");
107             } else {
108                 System.out.print(m + "\t");
109             }
110             if ((isFlag + m) % 7 == 0) {
111                 System.out.println();
112
113             }
114
115         }
116
117     }
118 }

原文地址:https://www.cnblogs.com/19322li/p/10586654.html

时间: 2024-10-22 05:35:10

面向过程的java日历的相关文章

面向对象和面向过程 不同之处

对于不同的语言来说: C是面向过程 C++ JAVA是面向对象 C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制) C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制. 面向对象和面向过程的区别 面向对象简单,面向过程对人员要求素质过高 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了,最重

使用100%面向过程的方式来写java程序

java是强制写class关键字的语言,不能有独立的函数游离在类外出现在文件中,这和python c++ php都不同,后面的都可以单独在类外写函数,所以java被称为是纯面向对象的语言,py和php都不是强制向对象的写法. 尽管如此,有的笨瓜,还是打死也写不出类来,而且强烈的反对写类,认为面向过程已经能搞定一切了,发明c++这种语言的人就是闲的没事,c++对于c来说是完全的多余没必要. 但是当被公司要求写java时候,就会蒙蔽,觉得没有面向对象经验,很难转变,此篇演示完全的面向过程的思维来写j

Java基础-学习笔记(五)——面向过程和面向对象的区别

学习面向对象的语言,要弄清楚面向对象,首先要从理解面向过程开始. 回想起之前在学习C语言时,每次拿到一个题目,首先想到的是,先分析出解决问题所需要的步骤,每一个功能点,用一个函数来表示,使用的时候一个一个进行调用就好了,程序的重心在函数上(谓语):面向对象,就是要把问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述每个事物在整个解决问题过程中的行为,强调的是对象本身(主语) 还有就是数据是单独存储还是与操作存储在一起.对面向过程而言,数据是独立的.而在面向对象中,对象本身就

Java基础知识强化20:面向对象和面向过程的思想对比

面向对象与面向过程的区别  1. 与面向对象编程思想相比较的,往往是面向过程的编程思想,其实在我来理解,两者并不冲突,原因是面向对象的编程也必须使用面向过程的思维来实现具体的功能,所以我认为,两者的区别是两种思想境界不同,面向过程的思想就像是一个员工在思考问题,他只在意把自己的工作按步骤完成即可,而面向对象的思想就像一个公司的BOSS,他要考虑公司的整体布局,各个部门的职责.以及协调工作,公司的发展方向等,而具体的工作,比如前台接待客户的流程,他不需求亲自考虑,但公司每天的每个具体工作细节又是组

面向过程与面向对象的区别-遁地龙卷风

下面例子根据C和Java编写 面向过程与面向对象之间的区别在于认知世界的方式,后者在前者的基础上提供了更高的抽象层次-类. 也就是抽象.封装.继承.多态. 举个例子 输出 小明20岁<=>A,小明打篮球<=>B. 面向过程相当于在类中调用main方法输出A.B public class Test { public static void main( String[] args ) { System.out.println( "小明去上学" ); System.o

面向过程和面向对象的本质理解

http://kiritor.blog.51cto.com/7400479/1226762/ 面向过程和面向对象的本质理解 面向过程就是分析出解决问题所需的步骤,面向对象则是把构成问题的事物分解成对象,抽象 出对象的目的并不在于完成某个步骤,而是描述其再整个解决问题的步骤中的行为. 面向过程的思维方式是分析综合,面向对象的思维方式是构造. 例如c语言解决问题时,一般是先定义数据结构,然后在构造算法.而是用Java面向对象求解时 则是先抽象出对象,构造一个"封闭"的环境,这个环境中有定义

.NET 高级架构师0002 架构师之路(1)---面向过程和面向对象

1.引言     机算机科学是一门应用科学,它的知识体系是典型的倒三角结构,所用的基础知识并不多,只是随着应用领域和方向的不同,产生了很多的分支,所以说编程并不是一件很困难的事情,一个高中生经过特定的训练就可以做得到.但是,会编程和编好程绝对是两码事,同样的程序员,有的人几年之后成为了架构师,有的人却还在不停地coding,只不过ctrl-c.ctrl-v用得更加纯熟了.在中国,编程人员最终的归途无外乎两条:一是转向技术管理,它的终点是CTO:二是继续深入,它的终点是首席架构师,成为CEO的人毕

面向对象和面向过程连接数据库

define('DBHOST','localhost');define('DBUSER','root');define('DBPD','');define('MYDB','java'); //数据库操作的两种形式只1.面向对象编程@$mysqli=new mysqli(DBHOST,DBUSER,DBPD,MYDB);//$mysqli->select_db(dbname);可以用这个函数来选择数据库$name="qweqwe";$query="SELECT * FRO

面向接口设计和编程——(面向对象、面向接口、面向过程、面向实现) --转载

引言--面向接口所处的设计模式中的位置. 其实,我认为Java/C#比C++高级的其中一个原因是,它对面向接口编程的支持.不要误解,并不是说C++不支持面向接口编程,而是说C++的语法中没有这种天然的机制. 面向对象之于面向过程,面向接口之于面向实现.但基本上,面向接口和面向实现都基于面向对象的模式,也就是说面向接口并不能称为比面向对象的更高的一种编程模式.而是在面向对象中大的背景下的一种更加合理的软件设计模式,它增强了类与类之间,模块与模块的之间的低耦合性,是软件系统更容易维护.扩展. 不管是