


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、这是一篇写给新手的 NSDate 教程( Swift 版)本文由 CocoaChina 译者 leon( 社区 ID )翻译自 appcoda 原文: A Beginner s Guide to NSDate in Swift 如果有人问我项目中最常用的东西是什么,我会告诉他:日 期处理。毫无疑问,不管项目和“日期”有何关系,开发人员 都需要和 NSDate 对象打交道。无论是把日期对象 转换成可读字符串,还是使用日期对象进行某种计算,都需 要了解这方面的编程知识。日期编程很容易掌握,而且可以 帮助你在其他重要的任务中有所收获。对编程新手来说处理 日期是个麻烦事,实际上,只要你掌握要领,就得心
2、应手。 在程序中使用 NSDate ,最常见的操作是将其转换成字符 串对象,这样就可以很方便的进行格式化,供用户查看。另 外,就是逆操作:将字符串对象转换成日期对象。但是,这 些并不是所有关于日期的操作,以下是一些例子:日期比较 给定一个日期(比如当前日期) ,计算某个时间段(比如某 天、某月或某年)之后或之前的日期计算日期差值(给定两 个日期,计算间隔)将日期对象拆分开,并访问不同的部分 (年,月等)所有上面的操作,包含字符串和日期之间的互 相转换,是本教程的讨论对象。接下来的部分,你将看到这 些操作都是十分简单的关键是了解工具和使用方法。面,我列出了一些关键文档的链接供你参考。请先进行查
3、看以便获取必要的信息: NSDateNSDateFormatterNSDateComponentsNSDateCo mponentFormatterNSCalendar 关于 Demo App 在本教程中我们不会真正操作一个 demo 程序,而是会利 用 Playground 来展示所有示例。选择这种方式是因为我想 要提供给你关于 NSDate 类各种使用的代码片段。 尽管如此,你还是通过这个链接下载 playground 文件,并 用 Xcode 打开。这里我强烈建议你创建一个新的 Playground 文件,亲自测试接下来提供的所有代码片段。 这将帮助你更好的理解每个示例是如何工作的,另外
4、,修改 其中的代码,你将更直观的看到结果是如何改变的。我提供的 playground 文件叫 PlayingWithDates ,你可以 使用同样的名字创建,也可以自己改一个。 基础知识在我们开始详细学习日期处理之前,需要先搞懂一 些基础概念。那就从最简单的 NSDate 对象开始吧,在日 期编程中,这个对象描述了 日期 和 时间 信息。所以它不 但用于日期,也用于时间处理。格式化 这个概念在直接处 理 NSDate 对象时还用不到。可以把日期和时间看做是类 中普通的属性。只有在将日期对象转换为字符串对象时,才 能用到格式化,接下来我们会看到许多格式化的实例。简单 说来,不论你需要的是日期、
5、时间,或者两者都需要, NSDate 类都可以胜任。另外一个稍后需要关注的类是NSDateComponents 。这个类可以简单的看做是 NSDate 的“姐妹”类,因为它为开发者带来了许多关于日期的便捷操 作。其中一项重要内容是:它可以将日期和时间分割成独立 的属性,这样就可以直接访问每项属性,这在诸如日期计算 之类的任务中非常有用。例如: NSDateComponents 实例 中的“天”和“月”就可以按照如下方式展现: let dateComponents = NSDateComponents() let day = dateComponents.day let month = date
6、Components.month 这很简单。另外,访问 日期组件(年,月,日等)并生成日期属性到 NSDateComponents 中去需要先执行一些转换命令,我们 接下来会谈这个。除了上面这些功能外, NSDateComponents 类在计算过去或未来的时间上也很有 用。只需要简单的对某个子属性(年,月年等)执行加减操 作,就可以算出未来或过去的一个时间。另外, NSDateComponents 类还适合查找两个日期之间的间隔。 后面我们会详细的说明。我们暂时不会详细学习 NSDateComponents 类,这里我们只需要学一下如何将 NSDate 和 NSDateComponents
7、对象互相转换, 要提到的 另外一个重要角色是 NSCalendar 类。这个类的功能并不在 本文的讨论范围,但是, NSDate 和 NSDateComponents 之间的互相转换, 却是有 NSCalendar 类来控制的 (因为需 要制定某个 NSCalendar 对象,才能完成转换) 。事实上, 系统在进行转换时,需要知道使用的日历(历法)是哪个, 然后才能获得正确的转换结果(要知道,世界上有许多不同 的日历,其年月日的值是各不相同的) 。你可以通过介绍中 的文档链接查看关于 calendar 的详情, 在这里, 你只需要知 道我们会用 NSCalendar 的 currentCale
8、ndar() 方法获取 系统当前的 calendar 即可。 除了上述工具外, 还有一个重要 的 NSDateFormatter 类需要了解。这个类会帮助我们将 NSDate 对象转换为字符串对象,也可以将字符串对象转换 为 NSDate 对象。通过它,可以将 NSDate 对象按照预定 义的日期样式直接转换成字符串,也可以按自定义的日期格 式进行转换。我们稍后会看到几个这样的实例,也会看到互 相转换的例子。 NSDateFormatter 对象也支持本地化功能, 只需要提供一个有效的 NSLocale 对象,就可以按照给定的 locale 设置转换成合适的字符串内容。另外一个类似的类是 NS
9、DateComponentsFormatter ,它有一个重要目的:输入 日期和时间,输出格式化好的可读字符串。它包含了许多方 法来完成这个任务,在本教程最后部分你将看到几个这样的 例子。但是在本教程中,除了例子中涉及的内容外,我们不 会过多的讲解这个类。 接下来,我们将直接学习之前提到的工作时如何完成的。再 次建议你新建一个 playground 文件,最好的学习方法就是 自己亲身实践。 NSDate 和字符串相互转换一开始,我们需 要通过 NSDate 类获取当前日期,并且将其赋值给一个常 量。和其他语言不同,获取当前时间并不需要如 now() 或 者 today() 之类特别的方法,只需
10、要初始化一个 NSDate 对象即可。let currentDate = NSDate() 在 Xcode playground 中写入代 码后,结果如下: 注意:这个值我们在后面会多次用到。现在来初始化一个 NSDateFormatter 对象,它是我们用来转换日期和字符串的 工具。let dateFormatter = NSDateFormatter()dateFormatter 对象 默认会使用系统中设置的区域信息,除非显式地设置区域。 即便如此,手动设置区域也不是必须的。以下是设置区域的 代码:dateFormatter.locale = NSLocale.currentLocale(
11、) 设置其他 区域也很简单,只需要通过 区域代码 匹配到对应的区域即 可。dateFormatter.locale = NSLocale(localeIdentifier: el_GR) dateFormatter.locale = NSLocale(localeIdentifier: fr_FR) 这两行代码展示了如何设置不同的区域,这里用的是希腊和 法国。当然,这样依次设置多个区域是没有意义的,因为只 有最后一次设置会生效。想知道区域信息对日期转换字符串 有什么影响吗?马上你就会看到。使用 date formatter style 格式化输出字符串在将 NSDate 转换成字符串之前,你需
12、要先“告诉” date formatter 你想要什么样式的字符串。 有两种方式可以设置格 式 :一种是通过一些预定义的日期格式化样式(style );另外一种是通过某些说明符来手动设置日期格式。 我们先开始使用第一种方式,这里你会用到 NSDateFormatterStyle 的枚举类型,它有若干个枚举值, 每个值都代表不同的样式。我们来逐个查看。第一个样式叫 完整样式( FullStyle ),它的结果显示如下:下面是代码,可 以自己拷贝粘贴试试效果: dateFormatter.dateStyle =NSDateFormatterStyle.FullStylevar convertedD
13、ate = dateFormatter.stringFromDate(currentDate) 除了日期样式 的代码外, stringFromDate 方法的使用也很重要, 它是真正 执行转换的代码。当谈到日期、字符串转换时,就指的是这 个方法,而其他步骤只是起到定制结果的辅助作用。如果你 在项目里要用到日期转换,这个方法会非常方便。 接下来,我们来看一下长样式( Long Style ):代码: dateFormatter.dateStyle =NSDateFormatterStyle.LongStyle 和完整样式比,长样式少了“天”的信息。下来是 中等样式 (Medium Style)
14、: dateFormatter.dateStyle= NSDateFormatterStyle.MediumStyle convertedDate = dateFormatter.stringFromDate(currentDate) 最后是 短样式 ( Short Style ):dateFormatter.dateStyle =NSDateFormatterStyle.ShortStyle convertedDate = dateFormatter.stringFromDate(currentDate) 现在你就知道 了有哪些可用的日期样式,在项目中可以根据需要在日期中 使用。每个样式都会
15、产生不同的结果, 说不定哪个会适合你。 之前我提到过如何改变默认的区域设置,既然我们已经学习 了改变 formatter ,影响日期转换结果的方式, 接下来我们试 着改变一下区域设置,看看会产生什么样的效果。在这个例 子中,我会用完整样式来转换日期字符串,设置区域为希腊 和法国。我想这个截图很好的说明了区域的作用,你可以按 照自己的需要设置。使用日期格式说明符预定义的日期样式 在大多数情况下都可以适用,然而我们不能改变这些样式。 若我们需要使用不同的格式,有一个方法:设置 自定义的 日期格式 。设置自定义日期格式在两种场景中很有用: 1.当预定义的日期样式不能满足我们的需求;2.当我们需要把一
16、个复杂的日期字符串(比如Thu, 08 Oct 2015 09:22:33 GMT )转换成日期对象。 要想设置合适的日期格式(对象) ,必须搭配使用一系列说 明符。说明符也是简单的字符,但是对于 date formatter 来 说有特定的含义。在查看具体的例子前,我们先列出一些在 例子中出现的说明符:EEEE :“星期”的全名(比女如Monday )。如需缩写,指定1-3 个字符(如 E, EE , EEE 代表 Mon )。 MMMM :“月份”的全 名(比如 October )。如需缩写,指定 1-3 个字符(如 M, MM , MMM代表Oct )。dd :某月的第几天(例如, 09
17、或 15) yyyy :四位字符串表示“年”(例如 2015 ) HH :两位字 符串表示“小时”(例如08或19)mm :两位字符串表示“分 钟”(例如05或54)ss :两位字符串表示“秒” zzz :三位字 符串表示“时区”(例如 GMT )GGG :公元前 BC 或公元后 AD 要查看完整的说明符文档,推荐访问 /reports/tr35/tr35-6.html#Date_Format_P atterns 这个链接。我们继续来看看这些说明符是如何发挥作用的。这次,让我 们把当前时间转换成包含完整的星期、月份名称、日期和年 份信息。 dateFormat
18、ter.dateFormat = EEEE, MMMM dd, yyyy convertedDate = dateFormatter.stringFromDate(currentDate) 没有必要解释代码了,这个用法很直截了当。让我们再转换一个时间字符串: dateFormatter.dateFormat = HH:mm:ss convertedDate = dateFormatter.stringFromDate(currentDate) 到此,我们学到 的转换都是把 *NSDate* 对象转成格式化的字符串对象。 这个 的逆过程也挺有意思,就是将格式化的字符串通过 date format
19、ter 转换成 NSDate 对象,这里同样也会用到之前的 日期样式和格式说明符。关键是要通过设置好的 date formatter 对象调用 dateFromString ,让我们来看个例子: var dateAsString = 24-12-2015 23:59 dateFormatter.dateFormat = dd-MM-yyyy HH:mm var newDate = dateFormatter.dateFromString(dateAsString) 让我们看个包 含时区信息的复杂字符串: dateAsString = Thu, 08 Oct 2015 09:22:33 GMT
20、dateFormatter.dateFormat = EEE, dd MMM yyyy HH:mm:ss zzz newDate = dateFormatter.dateFromString(dateAsString)现在可以看到时间值( 09:22 )变成了 12:22 ,这时因为时区生 效了,实际上,时间并没有发生变换,这个时间( 12:22 ) 是 GMT 时间( 09:22 )加上我当前时区( EET : GMT+3 ) 的时差后的结果。稍后我们会再看几个时区的例子,不过现 在你可以在自己的机器上试一下效果。到此,你已经掌握了日期、字符串间相互转换的知识。你可 以自己尝试写写代码,来理
21、解日期编程的原理。使用 NSDateComponents 许多情况下你需要把日期拆成块, 并且 获取某一项的值。例如,你可能只需要获取星期、月份或时 间、小时信息。这时就要用到 NSDateComponents 类。 NSDateComponents 类经常和 NSCalendar 类搭配使用, NSCalendar 真正执行 NSDate 和 NSDateComponents 间的转换。这样,我们先要获取当前的 calendar 。 let calendar = NSCalendar.currentCalendar()现在,我们来看一个 *NSDate* 到 *NSDateComponent
22、s* 转换的具体例子: let dateComponents = ponents(NSCalendarUnit.Day, NSCalendarUnit.Month, NSCalendarUnit.Year, NSCalendarUnit.WeekOfYear, NSCalendarUnit.Hour, NSCalendarUnit.Minute, NSCalendarUnit.Second, NSCalendarUnit.Nanosecond, fromDate: currentDate) print(day = (dateComponents.day), month = (dateCompo
23、nents.month), year = (dateComponents.year), week of year =(dateComponents.weekOfYear), hour = (dateComponents.hour), minute = (dateComponents.minute), second = (dateComponents.second), nanosecond = (dateComponents.nanosecond) , separator: , , terminator: ) 第一行用的方法是 NSCalendar 的 components(_:fromDate
24、:) ,这个方法接受两个参数: 第二个 是日期对象;第一个参数比较有意思,它接收若干个 NSCalendarUnit 类型值, NSCAlendarUnit 用来说明需要 的日期部分。NSCalendarUnit 是一个结构体,你可以在 这个文档 中看 到所有属性。 在上面的例子中你可以看出, NSCalendarUnit 指定了以下日期组件: 年月日一年中的第几个星期小时分钟秒毫微秒这里需要注 意:若某个组件没有在第一个参数中指定,就无法访问它。 如:在这个例子中,我们没有指定NSCalendarUnit.TimeZone ,这样就无法访问时区的组件, 比如 print(dateCompon
25、ents.timezone) 调用会造成一个运行 时错误。如果你需要额外的日期组件,只能重新调用一次 calendar.Components 方法,把你需要的 Calendar Unit 添 加进去。date components 到 date 对象的转换也很简单。 这个过程中 不需要使用 calendar unit 。只用初始换一个新的 NSDateComponents 对象,然后显式的设置你需要的组件 的值,然后调用 NSCalendar 的 dateFromComponents 方 法即可。 let components = NSDateComponents() components.d
26、ay = 5 components.month = 01 components.year = 2016 components.hour = 19 components.minute = 30 newDate = calendar.dateFromComponents(components) 在文章的前面我们看到了如何通过设置时区来影响转换的 字符串,如果你想知道改动时区会对转换日期对象有怎样的 影响,可以参考下面的例子: components.timeZone = NSTimeZone(abbreviation: GMT) newDate = calendar.dateFromComponen
27、ts(components) components.timeZone = NSTimeZone(abbreviation: CST) newDate = calendar.dateFromComponents(components) components.timeZone = NSTimeZone(abbreviation: CET) newDate = calendar.dateFromComponents(components)GMT =Greenwich Mean Time (格林尼治标准时间)CST = China Standard Time (中国标准时间) CET = Centra
28、l European Time( 欧洲中部时间) 你可以在 这个链接 中查找时区缩写的列表。 现在你已经知道了怎么使用 NSDateComponents ,让我们 再来学习其他有趣的东西。 比较日期和时间另外一个使用场景是比对日期对象,查看一 个日期是否早于、晚于或等于另外一个日期。简单说来,我 会提供三种方法来比对日期对象,但不会说明哪种方法比较 好一些, 这些方法的差别不大, 到底用哪个取决于你的需求。 开始接触比较方法之前,我们先创建两个自定义的日期对象 作为示例。初始化两个 date formatter 对象,通过它们将格 式化字符串转换成日期对象。dateFormatter.date
29、Format = MMM dd, yyyy zzz dateAsString = Oct 08, 2015 GMT var date1 = dateFormatter.dateFromString(dateAsString)!dateAsString = Oct 10, 2015 GMTvar date2 = dateFormatter.dateFromString(dateAsString)! 先来看看第一个日期比对方法,它用于判断一个日期是否早 于另外一个日期。方法名为 earlierDate: ,还有一个是 laterDate: ,例如:date1.earlierDate(date2)
30、这个方法效果如下: 如果 date1 早于 date2 ,该方法返回 date1 如过 date2 早 于 date1 ,该方法返回 date2 如果 date1 和 date2 相同, 返回 date1laterDate 方法也可以用于这样的判断。 让我们来看一个用到这两个方法的例子: / Comparing dates - Method #1print(Earlier date is: (date1.earlierDate(date2) print(Later date is: (date1.laterDate(date2)另外一个日期比较方法是 NSDate 的 compare: 方法,
31、它需要搭配使 用 NSComparisonResult 枚举体。通过下面的例子你就能 明白我说的意思。先让我们来看一下它的使用场景:同样, 我们有两个日期对象需要比对,然后判断两个日期是否相同, 如果不同,哪个更早一些。代码如下:结果为:代码: / Comparing dates - Method #2 if pare(date2) = NSComparisonResult.OrderedDescending print(Date1 is Later than Date2)else if pare(date2) = NSComparisonResult.OrderedAscending pri
32、nt(Date1 is Earlier than Date2)else if pare(date2) = NSComparisonResult.OrderedSame print(Same dates) 第三个比对方法有点不同,因为它用到了时间间隔(timeinterval) 的概念。这个方法也很简单,它可以查找到每个日 期(到现在)的时间间隔,接下来就可以进行比对。 / Comparing dates - Method #3if date1.timeIntervalSinceReferenceDate > date2.timeIntervalSinceReferenceDate pri
33、nt(Date1 is Later than Date2)else if date1.timeIntervalSinceReferenceDate < date2.timeIntervalSinceReferenceDate print(Date1 is Earlier than Date2)else print(Same dates) 上面的这些方法也可以用到时间的比对上。 现在我给大家最 后一个例子,这个例子和前面的不同之处在于 date1 和 date2 对象包含了时间的表示。 例子中又用到了 earlierDate 方法,另外,还用到了 isEqualToDate: 的方法,它的
34、用法也 很明显: / Comparing time. dateFormatter.dateFormat = HH:mm:ss zzz dateAsString = 14:28:16 GMT date1 = dateFormatter.dateFromString(dateAsString)! dateAsString = 19:53:12 GMT date2 = dateFormatter.dateFromString(dateAsString)! if date1.earlierDate(date2) = date1 if date1.isEqualToDate(date2) print(S
35、ame time) else print(date1) is earlier than (date2) else print(date2) is earlier than (date1) 在其中你会看到“ 200-01- 01”的日期,你一定很好奇,因为 我们从来没设置过这样的日期。这是因为若 NSDate 对象 没有指定日期,只指定时间的话,会自动添加默认的日期属 性。这不会影响到我们需要的时间值。好了,现在你应该知道了如何比较日期对象了。计算未来和 过去的日期计算过去和未来的日期比较有意思。这里你会用到 NSCalendarUnit ,NSDateComponents 等之前了解过的 工具
36、。在下面的例子中,我会展示两种不同的方法:第一种 使用 NSCalendar 类和 NSCalendarUnit 结构体;第二种 使用 NSDateComponents 类。最后,我们会用到第三种替 代方案,但是通常情况下,不推荐使用。 首先,记住我们的当前日期(当然了,是在写这个教程是的 日期、时间)。这个日期会作为我们的参照值。现在,假定 我们需要为这个日期往后推两个月又 5 天。最好用代码来描 述:let monthsToAdd = 2let daysToAdd = 5 我们先用第一种方法来获取期望的日期, 先看看代码,稍后我会解释: var calculatedDate =NSCale
37、ndar.currentCalendar().dateByAddingUnit(NSCale ndarUnit.Month, value: monthsToAdd, toDate: currentDate, options: NSCalendarOptions.init(rawValue: 0) calculatedDate =方法。它的作用是NSCalendar.currentCalendar().dateByAddingUnit(NSCale ndarUnit.Day, value: daysToAdd, toDate: calculatedDate!, options: NSCalend
38、arOptions.init(rawValue: 0) 如你所见, 这里用到的方法是 NSCAlendar 类的dateByAddingUnit:value:toDate:options: 添加某个日历单元值(如年月日时分秒等)到现有的日期对 象上,然后返回新的日期对象。我们需要添加两个日历单元 到当前日期,直接用这个方法是不可能的(它每次只能设置 一个 calendar unit )。关键是调用两次这个方法,设置不同 的日历单元,就能得到最终结果。以下是在 playground 中调用效果, 你可以看到两次添加的结 果:这个方法在你需要设置 12 个日历单元时, 还是不错的。 当日历单元多的
39、时候,你就需要多次调用这个方法。 在日历单元比较多的时候,更好的方法是使用 NSDateComponents 类。方便起见,这个例子中我们还是 设置月份和天。具体做法是:初始化一个 NSDateComponents 对象,并设置月份和天的信息。然后 我们调用 NSCalendar 的另一个方法 dateByAddingComponents:toDate:options: ,并最终获得我 们需要的日期对象。 let newDateComponents = NSDateComponents() newDateComponents.month = monthsToAdd newDateCompone
40、nts.day = daysToAddcalculatedDate =NSCalendar.currentCalendar().dateByAddingComponents(newDateComponents, toDate: currentDate, options:NSCalendarOptions.init(rawValue: 0) 注意:在以上调用 NSCalendar 方法的地方,最后一个参数 options 都没有被 设置。如果你需要具体设置 options 的值, 请参考完整的 官 方文档。第三种方法实际上并不推荐使用,因为闰秒、闰年或日光节 约时间的缘故,它经常会得到错误的结果
41、。这个方法的思路 是为当前的日期添加一个时间段。我们会用到 NSDate 的 dateByAddingTimeInterval: 方法。在下面的例子中,我们 要获得计算 1.5 小时后的时间。let hoursToAddInSeconds: NSTimeInterval = 90 * 60 calculatedDate = currentDate.dateByAddingTimeInterval(hoursToAddInSec onds) 再次说明一下,上述的前两种方法更安全和通用。你 可以按照需求选择使用。 上面的三个例子都是为当前日期对象添加某些日历单元的 值。那么如何通过减去一些天数来获
42、取之前的日期? 接下来的例子可以完成这个任务。首先,我们可以为当前日 期添加一个负值,这样就可以得到之前的日期。然后通过格 式化的方式获取字符串结果。这个结果比较有意思。 let numberOfDays = -5684718 calculatedDate =NSCalendar.currentCalendar().dateByAddingUnit(NSCale ndarUnit.Day, value: numberOfDays, toDate: currentDate, options: NSCalendarOptions.init(rawValue: 0) dateFormatter.da
43、teFormat = EEEE, MMM dd, yyyy GGG dateAsString = dateFormatter.stringFromDate(calculatedDate!) 上面的这 些代码片段可以帮助你理解计算过去和之前日期的方法。你 可以自己试试改变这些代码,看看有什么不一样的结果。这 样就可以更深入的理解这些功能。计算日期间隔正如开头说 的那样,计算日期间隔也是你在工作过程中可能遇到的任务。 在教程的最后部分,我将通过三种方式展示如何计算 NSDate 对象的间隔。你可以按照需要选择适用的方法。 首先,我们还是需要创建两个自定义的 NSDate 对象: dateForma
44、tter.dateFormat = yyyy-MM-dd HH:mm:ss dateAsString = 2015-10-08 14:25:37 date1 = dateFormatter.dateFromString(dateAsString)!dateAsString = 2018-03-05 08:14:19date2 = dateFormatter.dateFromString(dateAsString)! 我们 先来看看如何通过 date components 来计算日期对象间隔。 我们又会用到 NSCalendar 类的一个方法。 然后打印出各个 日期部分的结果。显然,只要有可用的
45、 date components , 通过这种方法获取需要的结果是很简单的: var diffDateComponents = NSCalendar.currentCalendar().components(NSCalendar Unit.Year, NSCalendarUnit.Month, NSCalendarUnit.Day, NSCalendarUnit.Hour, NSCalendarUnit.Minute, NSCalendarUnit.Second, fromDate: date1, toDate: date2, options: NSCalendarOptions.init(rawValue: 0)print(The difference between dates is: (diffDateComponents.year) years, (diffDateComponents.month) months, (diffDateComponents.day) day
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安徽省合肥一中、安庆一中等六校2025-2026学年物理高三第一学期期末学业质量监测试题
- 江苏省南京市南京师范大学附属中学2025-2026学年物理高三上期末经典试题
- 内蒙古通辽市2025年物理高三第一学期期末质量跟踪监视试题
- 吉林市四平市2025年高三物理第一学期期末考试试题
- 2026届宁夏回族自治区六盘山高级中学 物理高三第一学期期末教学质量检测模拟试题
- Lesson 34 A happy discovery说课稿-2025-2026学年初中英语第三册新概念英语
- 考点攻克自考专业(行政管理)试题含完整答案(易错题)
- 千里跃进大别山课件
- 4.2.1 昆虫的生殖和发育 说课稿-2025-2026学年济南版生物八年级上册
- 第三单元写作《如何突出中心》说课稿 2024-2025学年统编版语文七年级上册
- 寻找消失的滇缅路:松山战痕课件
- 中小学教师职业道德规范解读
- 社会组织管理概论全套ppt课件(完整版)
- 政府预算理论与实务(第四版)全套教学课件
- 四年级上册美术课件第1课 送给老师的花|沪教版
- 轧机设备安装施工方案
- 最新开工报告范文
- 制药企业仓库温湿度分布的验证
- GB∕T 3099.4-2021 紧固件术语 控制、检查、交付、接收和质量
- 山东临清实验中学2012学年八年级语文 7课背影共3课时教案(表格版) 人教新课标版
- 深圳牛津小学英语单词汇总
评论
0/150
提交评论