zoukankan      html  css  js  c++  java
  • 20145319 第七周学习总结

    20145319 《Java程序设计》第七周学习总结

    教材学习内容总结

    一 时间的度量

    • 格林威治标准时间:简称GMT时间,其正午的时间是太阳到达天空最高点时(由于地球公转轨道为椭圆且速度不一,因而依此判断时间会造成越来越大的时间误差)

    • 世界时:又称UT时间,借由观测远方星体跨过子午线而得

    • 国际原子时:又称TAI时间,将秒的国际单位定义为铯原子辐射震动9192631770周耗费的时间

    • 世界协调时间:又称UTC时间由于TAI时间每秒是固定的,然而地球自转会越来越慢,为了保持TAI和UT时间不要差距过大,提出了折中的世界协调时间

    • Unix时间:以1970年1月1日00:00:00为起点

    • epoch:不少Unix的系统、平台、软件都选择这个时间作为时间表的起点

    二 年历简介

    • 儒略历:如今公历的前身,用来取代罗马历,四年一闰年

    • 格里高利历:改革了儒略历

    • ISO 8601标准:ISO 8601并非年历系统,而是时间日期表示方法的标准,用统一时间日期的数据交换格式,如yyyy-mm-ddTHH:MM:SS.SSS

    • 认识时区:一般是经度偏移15度偏移一个小时,然而许多国家领土广阔,有多个时间反而困扰,如中国就只采用单一时区

    三 认识Date和Calendar

    • 时间轴上瞬间的date:使用Date实例的各getTime可以获得epoch毫秒数,Data实例只用来当做时间轴上的某一瞬间

    • DateFormat:DataFormat可以对字符串格式进行处理,分别有getDateInstance()、getTimeInstance()、getDateTimeInstance()等静态方法 ,SimpleDateFormat还有个parse()方法,可以按构建SimpleDateFormat时指定的格式将指定字符串改为Date实例

    • Calendar:格式化时间日期需要DateFormat,如果想取得某个时间日期信息,对时间日期进行操作,需要使用Calendar实例

    • Timezone:一般都会使用默认时区,若要修改,可以使用java.util.Timezone中的getDefault()来取得默认时区信息

    四 新时间日期API

    • 机器时间观点:Date实例应该只代表了机器观点的时间信息,真正可靠的只有内含的epoch毫秒数

    • 人类时间观点:

      1. localDateTime、LocalTime和LocalTime只有对时间的描述,并没有时区信息,如果定义了不存在的日期,就会跑出DateTimeException
      2. ZoneDateTime和OffsetDateTime:如果时间日期需要带有时区,可以基于localDateTime、LocalTime和LocalTime等来不齐缺少的信息
      3. Year YearMonth Month和MonthDay:如果要取得想要的月份数则需要使用getValue()方法
    • 对时间的运算:使用Calendar可以进行时间运算,jdk8中也提供了更加方便的时间运算方法以及输出格式,操作相应的temporal类即可

    • 年历设计系统:java.time中的类在需要实行年历系统时都是采用单一的ISO8601系统,如果需要其他年历系统则需要java.time.chrono操作java.time.chrono.Chronology接口的类

    教材学习中的问题和解决过程

    • 虽说设计的时候费了很多心思,但是终归机器时间和人类时间还是有不同的,包括时区,历法,一年的时间也不总是3652460601000,感觉挺复杂的

    代码调试中的问题和解决过程

    操作题一 代码:

    package chapter13;
    import java.util.Scanner;
    import java.util.Calendar;
    
    public class rili{
    	public static void main(String args[])
    	{
    		int year,month,day;
    		Scanner yasuo=new Scanner(System.in);
    		System.out.print("输入年份:");
    		year=yasuo.nextInt();
    		System.out.print("输入月份:");
    		month=yasuo.nextInt();
    		System.out.print("输入日子:");
    		day=yasuo.nextInt();
    		Calendar rili=Calendar.getInstance();
    		System.out.println("	");
    		System.out.println("日	一	二	三	四	五	六");
    		rili.set(year,month,day);//设置日期将日历翻到指定日期
    		int xingqi=rili.get(Calendar.DAY_OF_WEEK)-1;//记录星期,如果是1就是周日,7代表周六,依次类推
    		String a[]=new String[xingqi+31];//存放号码的数组字符串
    		for(int i=0;i<xingqi;i++)
    		{
    			a[i]="**";
    		}
    		for(int i=xingqi,n=1;i<xingqi+31;i++)
    		{
    			if(n<=9)
    			{	
    				a[i]=String.valueOf(n);				
    			}
    			else
    			{
    				a[i]=String.valueOf(n);
    			}	
    			n++;
    		}
    		for(int i=0;i<a.length;i++)//输出数组部分
    		{
    			if(i%7==0)
    			{
    				System.out.println("");//换行
    				System.out.printf("%s",a[i]);
    			}
    			else
    				 System.out.printf("%s","	"+a[i]);
    		}
    	}
    }
    

    运行结果:

    代码托管

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 150/150 1/1 20/20
    第二周 200/350 1/2 20/40
    第三周 300/650 1/3 20/60
    第四周 350/1100 1/4 25/85
    第五周 200/1300 1/5 20/105
    第六周 200/1500 2/7 25/130
    第七周 200/1700 2/9 15/145
    第八周

    参考资料

  • 相关阅读:
    智联招聘
    我的Linux以及软件配置(长期更新)
    关于Git的笔记
    PHP和HTML表单
    web学习笔记——CSS整理(一)
    新开通博客园
    Thinphp模板替换
    __APP__
    大步前行
    centos 7 添加环境变量
  • 原文地址:https://www.cnblogs.com/20145319zk/p/5402508.html
Copyright © 2011-2022 走看看