2017-03-01 18:22:55 bitcser 阅读数 2089
  • Java大数据培训学校全套教程-常用对象(21)

    Java大数据培训学校视频课程:"java大数据培训学校全套教材"系列课程由750集视频构成,基本就 是1)时下流行的java培训学校主流内部教材,2)和市面上培训学校的通 行的课程体系几乎一样。所以这套课程都能自己学下来,等于上了培训学 校一次,完全可以找个java工程师的工作了。 本门课程为"java大数据培训学校全套教材"系列课程的第二十一篇,通过学习Array对象,等相关概念让大家对常用对象编程打下好的基础。

    4654 人正在学习 去看看 马克

在Swift3.0下

1.获取当前时间并转成字符串

func dateNowAsString() -> String {  
      
    let nowDate = Date()  
    let timeZone = TimeZone.init(identifier: "UTC")  
    let formatter = DateFormatter()  
    formatter.timeZone = timeZone  
    formatter.locale = Locale.init(identifier: "zh_CN")  
    formatter.dateFormat = "yyyy-MM-dd HH:mm"  
      
    let date = formatter.string(from: nowDate)  
    return date.components(separatedBy: " ").first!  
}  
2.传入一个Date类型的参数,返回一个日期字符串

    func dateConvertString(date:Date) -> String {
        
        let timeZone = TimeZone.init(identifier: "UTC")
        let formatter = DateFormatter()
        formatter.timeZone = timeZone
        formatter.locale = Locale.init(identifier: "zh_CN")
        formatter.dateFormat = "yyyy-MM-dd HH:mm"
        
        let date = formatter.string(from: date)
        return date.components(separatedBy: " ").first!
    }


2018-05-29 09:52:28 jhy835239104 阅读数 3392
  • Java大数据培训学校全套教程-常用对象(21)

    Java大数据培训学校视频课程:"java大数据培训学校全套教材"系列课程由750集视频构成,基本就 是1)时下流行的java培训学校主流内部教材,2)和市面上培训学校的通 行的课程体系几乎一样。所以这套课程都能自己学下来,等于上了培训学 校一次,完全可以找个java工程师的工作了。 本门课程为"java大数据培训学校全套教材"系列课程的第二十一篇,通过学习Array对象,等相关概念让大家对常用对象编程打下好的基础。

    4654 人正在学习 去看看 马克

/// DateTools.swift

import Foundation

extension Date {
    func daysBetweenDate(toDate: Date) -> Int {
        let components = Calendar.current.dateComponents([.day], from: self, to: toDate)
        return components.day ?? 0
    }
}
/// xxxController.swift

 let formatter = DateFormatter()
 formatter.dateFormat = "YYYYMMdd"
 let endDate = formatter.date(from: "20181220")

 /// 当前日期 - 考试日期
 let date = Date()
 let days = Date().daysBetweenDate(toDate: endDate!)
 print("相差天数为 ==", days)
2015-06-08 11:16:40 c_c123 阅读数 1841
  • Java大数据培训学校全套教程-常用对象(21)

    Java大数据培训学校视频课程:"java大数据培训学校全套教材"系列课程由750集视频构成,基本就 是1)时下流行的java培训学校主流内部教材,2)和市面上培训学校的通 行的课程体系几乎一样。所以这套课程都能自己学下来,等于上了培训学 校一次,完全可以找个java工程师的工作了。 本门课程为"java大数据培训学校全套教材"系列课程的第二十一篇,通过学习Array对象,等相关概念让大家对常用对象编程打下好的基础。

    4654 人正在学习 去看看 马克
var timeStamp:Int=1433733352
var dateOfRecord=NSDate(timeIntervalSince1970:Double(timeStamp)
var date = NSDate(timeIntervalSince1970: 1433733352)
一:下面这个时间转为时间戳的一个链接
http://tool.lu/timestamp
二:stackoveroverfolw关于这个主题的各种解决办法
http://stackoverflow.com/questions/28854066/convert-timestamp-into-nsdate-swift
2019-02-27 22:20:15 u010545480 阅读数 169
  • Java大数据培训学校全套教程-常用对象(21)

    Java大数据培训学校视频课程:"java大数据培训学校全套教材"系列课程由750集视频构成,基本就 是1)时下流行的java培训学校主流内部教材,2)和市面上培训学校的通 行的课程体系几乎一样。所以这套课程都能自己学下来,等于上了培训学 校一次,完全可以找个java工程师的工作了。 本门课程为"java大数据培训学校全套教材"系列课程的第二十一篇,通过学习Array对象,等相关概念让大家对常用对象编程打下好的基础。

    4654 人正在学习 去看看 马克

一、基本操作

1、获取一个当前的日期

 let today = Date()
 print(today)
 
 //输出结果:2019-02-27 13:02:40 +0000
 系统当前取的是零时区的时间,我们所在的是东八区,所以会与实际的时间相差八个小时

2、Date转String

 let dateFormatter = DateFormatter()
 dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
 let strDate = dateFormatter.string(from: Date())
 print(strDate)
 
 //输出结果:2019-02-27 21:17:33

3、String转Date

let strDate = "2019-02-28 21:30:00"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
dateFormatter.timeZone = TimeZone.init(identifier: "UTC")
let date = dateFormatter.date(from: strDate)
print(date!)

//输出结果:2019-02-28 21:30:00 +0000

4、获取日期的各个组成成分

 let calendar = Calendar.current
 let timeZone = TimeZone.init(identifier: "UTC")
 let componets = calendar.dateComponents(in: timeZone!, from: Date())
 print(componets.year!)
 print(componets.month!)
 print(componets.day!)
 print(componets.hour!)
 print(componets.minute!)
 print(componets.second!)
 print(componets.weekday!)
2016-11-29 23:23:55 ValDC_Morning 阅读数 935
  • Java大数据培训学校全套教程-常用对象(21)

    Java大数据培训学校视频课程:"java大数据培训学校全套教材"系列课程由750集视频构成,基本就 是1)时下流行的java培训学校主流内部教材,2)和市面上培训学校的通 行的课程体系几乎一样。所以这套课程都能自己学下来,等于上了培训学 校一次,完全可以找个java工程师的工作了。 本门课程为"java大数据培训学校全套教材"系列课程的第二十一篇,通过学习Array对象,等相关概念让大家对常用对象编程打下好的基础。

    4654 人正在学习 去看看 马克

一、头文件存放程序中各个部分共享的对象,较大的程序需要使用更多的头文件。


       头文件(*.h文件)可以自己写

       可以写多个源程序和多个头文件,有源程序代码中调用所需要的头文件,将头文件模块化,可以防止在出错时因为头文件程序太多而找不到出错的位置。

      调用系统库函数时,要使用#include语句将某些头文件包含进去,头文件跟.C文件一样,是可以自己写的。头文件是一种文本文件,使用文本编辑器将代码编写好之后,以扩展名.h保存就行了。

     头文件中一般放一些重复使用的代码,例如函数声明,变量声明,常数定义,宏的定义等等。当使用#include语句将头文件引用时,相当于将头文件中所有内容,复制到 #include处 。使用头文件不仅可以减少工作量,还可以减少因代码编写不细心而导致的错误。

       库函数printf 等的函数原型声明都包含在 <stdio.h> 中,因此必须要使用下述固定指令:

       #include <stdio.h>

      通过 #include 指令,就可以把 <stdio.h> 中的全部内容都读取到程序中,包含库函数原型声明的 <stdio.h>  称为头文件,取得头文件内容的#include 指令称为文件包含指令。

       C预处理器主要任务:删除注释、插入被include包括的文件内容、替换define指令定义的符号以及确定代码的部分内容是否应该根据一些条件编译指令进行编译。

      

二、预处理指令

  如:

   #include <stdio.h>

   #include <time.h>

   #include <stdlib.h>

   #include <string.h>

   #define ROWS  10   //定义行

以上都是预处理指令,它们由预处理器解释,预处理器读入源代码。根据预处理指令对其修改,把修改过的源代码交给编译器。

 

三、宏定义形式:

     #define    名字    替换文本

     替换文本可以是任意的:

      #define  M  20 ,这就是宏定义,宏定义M,在预处理过程中凡是在主程序中出现的M都会被20替换.

     替换文本不仅限于字面值常量,可以把任何文本替换到程序中:

     #define  reg  register 此定义只是帮register创建了一个简短的别名,较短的名字使各个声明更加容易通过制表符进行排列。

     #define do_forever  for( ; ; )    用一种更具描述性的符号代替实现无限循环的for语句类型。

     #define  CASE   break;case   在switch语句中使用,会自动在每个case之前自动加break。

    宏函数

     #define MAX(a,b) ((a)>(b):(a):(b))  //定义一个MAX宏函数,a大于b返回值为a,否则为b.

     这是一个宏函数,程序中可以调用宏函数解决相应问题。

    宏与类型无关,定义函数时必须定义变量的类型,和函数相比,宏函数的不利之处在于每次使用宏时,一份宏定义代码的的copy插入到程序中,除非宏非常短,否则使用宏可能会大幅度增加程序代码长度。

      宏定义时可以不给值,只定义名称,例如:

定义DEBUG,只有名称不给值,在Linux操作下更能直观地看到它预处理后的程序代码,这里的程序是在VS2013下编译运行的,程序代码如下:

     #define    _DEBUG_

#include <stdio.h>
#include <Windows.h>
#define _DEBUG_
int main()
{
     #ifdef   _DEBUG_     //如果定义了DEBUG,输出下面语句
	printf("Hello debug\n");
     #endif
	printf("Hello earth\n");   
	system("pause\n");
	return 0;
}

运行结果如图:

如果将定义DEBUG语句注释掉,运行就不会打印#ifdef后的语句,因为没有定义DEBUG,#ifdef 后的语句不会被执行

如图程序运行结果如下图:

     #if 与 #ifdef

      #if 用来检测一个宏是否被定义,定义值是否为真,如果为真执行其后语句,不为真不执行;

#ifdef  用来测试一个宏是否被定义,它的值为真为假无所谓。

    


       计算机只认识二进制,所以C语言会转化为二进制代码

C语言———预处理C语言——(通过编译)汇编——(通过汇编转为)二进制

四、预处理

        预处理过程有四步:

1.宏替换;

2.去注释;

3.头文件展开;

4.条件编译。

五、  条件编译:选择性裁减代码

语法形式如下:

        if   行文本    elif   部分   opt else 部分    #endif

if 行:

   # if 常量表达式

   # ifdef   标识符

   #ifndef    标识符

elif  部分:

      elif  行    文本   elif  部分  opt

elif  行:

     #elif     常量表达式

else  部分:

      else    行   文本

else   行:

      #else


   预定义名字
某些标识符是预定义的,扩展后将生成特定信息,同预处理器表达式运算符defined 一样,不能取消定义或重新定义,如:
__LINE__                     包含当前源文件行数的十进制常量
__FINE__                     包含当前正在被编译的源文件名字的字符串字面值




swift-Date时间比较

阅读数 3395

没有更多推荐了,返回首页