diff --git a/中文_Chinese/第三天_布尔值_运算符_日期/第三天_布尔值_运算符_日期.md b/中文_Chinese/第三天_布尔值_运算符_日期/第三天_布尔值_运算符_日期.md
new file mode 100644
index 0000000..0432d11
--- /dev/null
+++ b/中文_Chinese/第三天_布尔值_运算符_日期/第三天_布尔值_运算符_日期.md
@@ -0,0 +1,631 @@
+
+
+[<< Day 2](../第二天_数据类型/第二天_数据类型.md) | [Day 4 >>](../04_Day_Conditionals/04_day_conditionals.md)
+
+
+
+- [📔 第三天](#-第三天)
+ - [布尔值](#布尔值)
+ - [程序识别为true的值](#程序识别为true的值)
+ - [程序识别为False的值](#程序识别为false的值)
+ - [未定义值](#未定义值)
+ - [Null](#null)
+ - [运算符](#运算符)
+ - [赋值运算符(=)](#赋值运算符)
+ - [算术运算符](#算术运算符)
+ - [比较操作符](#比较操作符)
+ - [逻辑运算符](#逻辑运算符)
+ - [增值运算符](#增值运算符)
+ - [减值运算符](#减值运算符)
+ - [条件运算符](#条件运算符)
+ - [运算符优先次序](#运算符优先次序)
+ - [视窗函数(Window Method)](#视窗函数window-method)
+ - [视窗 alert() 函数](#视窗-alert-函数)
+ - [视窗 prompt() 函数](#视窗-prompt-函数)
+ - [视窗 confirm() 函数](#视窗-confirm-函数)
+ - [日期对象](#日期对象)
+ - [建立 time 对象](#建立-time-对象)
+ - [获取完整的年份](#获取完整的年份)
+ - [获取月份](#获取月份)
+ - [获取日期](#获取日期)
+ - [获取星期日期](#获取星期日期)
+ - [获取小时数](#获取小时数)
+ - [获取分钟数](#获取分钟数)
+ - [获取秒数](#获取秒数)
+ - [获取时间](#获取时间)
+ - [💻 第三天:作业](#-第三天作业)
+ - [作业:难度水平 1](#作业难度水平-1)
+ - [作业:难度水平 2](#作业难度水平-2)
+ - [作业:难度水平 3](#作业难度水平-3)
+
+# 📔 第三天
+
+## 布尔值
+
+ 布尔数据类型只有两个值:_true_ 和 _false_。这种数据类型最常运用于比较中。所有比较都会返回布尔值,即 true 或 false。
+
+**例:布尔值**
+
+```js
+let isLightOn = true
+let isRaining = false
+let isHungry = false
+let isMarried = true
+let truValue = 4 > 3 // true
+let falseValue = 4 < 3 // false
+```
+
+ 再次强调,布尔数据类型只有两个值:true 和 false。
+
+### 程序识别为true的值
+
+- 所有数字(正或负)都是true,除了0;
+- 所有字符串都是true,除了空字符串‘’;
+- 布尔值true。
+
+### 程序识别为False的值
+
+- 0
+- 0n(BigInt 型变量)
+- 空值(null)
+- 未定义值(undefined)
+- 非数字(NaN)
+- 布尔值False
+- '', "", ``, 空白字符
+
+熟记这些程序识别为true或false的值很有用,在之后的章节中我们会在条件结构中利用这个性质做决策。
+
+## 未定义值
+
+如果我们声明一个变量但不赋值,那么这个变量的类型就是未定义值。另外,如果一个函数没有返回任何值(即没有 return 语句),那么这个函数的返回值默认是未定义值。(注意:函数本身是function类型)
+
+```js
+let firstName
+console.log(firstName) //未定义值,因为还未赋值
+```
+
+## Null
+
+```js
+let empty = null
+console.log(empty) // -> 空值,表示一片虚无
+```
+
+## 运算符
+
+### 赋值运算符(=)
+
+ 等号就是赋值运算符,用来给变量赋值。
+
+```js
+let firstName = 'Asabeneh'
+let country = 'Finland'
+```
+
+赋值运算符列表
+
+
+
+### 算术运算符
+
+算术运算符用于数学计算
+
+- 加(+): a + b
+- 减(-): a - b
+- 乘(*): a * b
+- 除(/): a / b
+- 求余(%): a % b
+- 指数(**): a ** b
+
+```js
+let numOne = 4
+let numTwo = 3
+let sum = numOne + numTwo
+let diff = numOne - numTwo
+let mult = numOne * numTwo
+let div = numOne / numTwo
+let remainder = numOne % numTwo
+let powerOf = numOne ** numTwo
+
+console.log(sum, diff, mult, div, remainder, powerOf) // 7,1,12,1.33,1, 64
+
+```
+
+```js
+const PI = 3.14
+let radius = 100 // 半径
+
+//计算圆的周长
+const areaOfCircle = PI * radius * radius
+console.log(areaOfCircle) // 314 m
+
+
+const gravity = 9.81 // in m/s2
+let mass = 72 // in Kilogram
+
+// 计算物体质量
+const weight = mass * gravity
+console.log(weight) // 706.32 N(Newton)
+
+const boilingPoint = 100 // 常温下水的沸点(摄氏度)
+const bodyTemp = 37 // 常温下体温(摄氏度)
+
+
+// 用字符串模版编辑字符串
+/*
+ The boiling point of water is 100 oC.
+ Human body temperature is 37 oC.
+ The gravity of earth is 9.81 m/s2.
+ */
+console.log(
+ `The boiling point of water is ${boilingPoint} oC.\nHuman body temperature is ${bodyTemp} oC.\nThe gravity of earth is ${gravity} m / s2.`
+)
+```
+
+### 比较操作符
+
+在程序中我们经常需要比较两个值的大小,这需要用到比较操作符。
+
+
+**例:比较操作符**
+
+```js
+console.log(3 > 2) // true, 因为3大于2
+console.log(3 >= 2) // true, 因为3大于2
+console.log(3 < 2) // false, 因为3大于2
+console.log(2 < 3) // true, 因为2小于3
+console.log(2 <= 3) // true, 因为2小于3
+console.log(3 == 2) // false, 因为3大于2
+console.log(3 != 2) // true, 因为3大于2
+console.log(3 == '3') // true, 仅比较值
+console.log(3 === '3') // false, 比较值和数据类型
+console.log(3 !== '3') // true, 比较值和数据类型
+console.log(3 != 3) // false, 仅比较值
+console.log(3 !== 3) // false, 比较值和数据类型
+console.log(0 == false) // true, 相等
+console.log(0 === false) // false, 数据类型不同
+console.log(0 == '') // true, 相同
+console.log(0 == ' ') // true, 相同
+console.log(0 === '') // false, 数据类型不同
+console.log(1 == true) // true, 相同
+console.log(1 === true) // false, 数据类型不同
+console.log(undefined == null) // true
+console.log(undefined === null) // false
+console.log(NaN == NaN) // false, 定义上不等
+console.log(NaN === NaN) // false
+console.log(typeof NaN) // number
+
+console.log('mango'.length == 'avocado'.length) // false
+console.log('mango'.length != 'avocado'.length) // true
+console.log('mango'.length < 'avocado'.length) // true
+console.log('milk'.length == 'meat'.length) // true
+console.log('milk'.length != 'meat'.length) // false
+console.log('tomato'.length == 'potato'.length) // true
+console.log('python'.length > 'dragon'.length) // false
+```
+
+ 理解上面的语句需要一些理解,单纯靠背而不理解背后逻辑的话很难应用。
+ JavaScript 其实是一个有些怪的程序语言,偶尔会给你和你预想不一致的结果。
+
+ 总而言之,如果 == 返回了 false,那么 === 一定会返回 false。用 === 相对来说更加安全(避免一些奇怪的意想不到的错误)。这个[链接](https://dorey.github.io/JavaScript-Equality-Table/) 列出了所有JavaScript的数据类型比较。
+
+### 逻辑运算符
+
+常用逻辑运算符:&&(与) , ||(或) and !(非).
+- &&:仅当两个比较值均是true值时,返回true;
+- ||:当两个比较值有至少一个是true值时,返回true;
+- !:取相反值,即!true = false。
+
+```js
+// && 例子
+
+const check = 4 > 3 && 10 > 5 // true && true -> true
+const check = 4 > 3 && 10 < 5 // true && false -> false
+const check = 4 < 3 && 10 < 5 // false && false -> false
+
+// || 例子
+
+const check = 4 > 3 || 10 > 5 // true || true -> true
+const check = 4 > 3 || 10 < 5 // true || false -> true
+const check = 4 < 3 || 10 < 5 // false || false -> false
+
+//! 例子
+
+let check = 4 > 3 // true
+let check = !(4 > 3) // false
+let isLightOn = true
+let isLightOff = !isLightOn // false
+let isMarried = !false // true
+```
+
+### 增值运算符
+
+ 用增值运算符来增加一个变量储存的值,可以理解为运算和赋值的结合。增值运算符分为前增值(Pre-increment)和后增值(Post-increment),具体区别:
+
+1. 前增值
+
+```js
+let count = 0
+console.log(++count) // 1
+console.log(count) // 1
+```
+
+2. 后增值
+
+```js
+let count = 0
+console.log(count++) // 0
+console.log(count) // 1
+```
+
+ 一般最常用的是后增值,所以至少需要学会使用后增值即可。
+
+### 减值运算符
+
+ 和增值类似,是用来减少变量的存储值,分为前减值(Pre-decrement)和后减值(Post-decrement)。
+
+1. 前减值
+
+```js
+let count = 0
+console.log(--count) // -1
+console.log(count) // -1
+```
+
+2. 后减值
+
+```js
+let count = 0
+console.log(count--) // 0
+console.log(count) // -1
+```
+
+### 条件运算符
+
+ 条件运算符用来写一个简易的条件结构,请看下例:
+
+```js
+let isRaining = true
+isRaining
+ ? console.log('You need a rain coat.')
+ : console.log('No need for a rain coat.')
+isRaining = false
+
+isRaining
+ ? console.log('You need a rain coat.')
+ : console.log('No need for a rain coat.')
+```
+
+```sh
+You need a rain coat.
+No need for a rain coat.
+```
+
+```js
+let number = 5
+number > 0
+ ? console.log(`${number} is a positive number`)
+ : console.log(`${number} is a negative number`)
+number = -5
+
+number > 0
+ ? console.log(`${number} is a positive number`)
+ : console.log(`${number} is a negative number`)
+```
+
+```sh
+5 is a positive number
+-5 is a negative number
+```
+
+### 运算符优先次序
+
+我建议在这个[官方文档链接](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence)查看运算符优先次序。
+
+## 视窗函数(Window Method)
+
+### 视窗 alert() 函数
+
+ 在之前的章节中,我们用 alert() 函数制造了一个弹窗,里面包含了一些文字和一个 OK 按钮。这是一个内建函数,作用是在弹窗内显示输入的参数。
+
+```js
+alert(message)
+```
+
+```js
+alert('Welcome to 30DaysOfJavaScript')
+```
+
+ 但建议不要太多使用这个函数,因为弹窗很烦人,建议只在测试缓环节用这个函数。
+
+### 视窗 prompt() 函数
+
+ prompt 函数会显示一个弹窗包含一个输入框,输入的内容可以保存在变量中。prompt() 函数接受两个变量,其中第二个变量可选择不填。
+
+```js
+prompt('required text', 'optional text')
+```
+
+```js
+let number = prompt('Enter number', 'number goes here')
+console.log(number)
+```
+
+### 视窗 confirm() 函数
+
+confirm() 函数展示一个对话框、一些文字、一个 OK 按钮和一个 Cancel 按钮。确认对话框通常用来向用户获取许可来执行某些操作。confirm() 函数可以接收字符串作为参数。
+点击 OK 按钮将返回 true,点击 cancel 按钮将返回 false。
+
+```js
+const agree = confirm('Are you sure you like to delete? ')
+console.log(agree) // 结果是true或是false取决于你在对话框里的选择
+```
+
+这些只是视窗函数的一部分,我们会在之后的章节更深入学习视窗函数。
+
+## 日期对象
+
+ 时间是很重要的,我们经常需要知道一个行为或事件发生的具体时间。JavaScript通过 Date 对象建立日期和时间变量。Date对象提供了许多函数供我们处理日期和时间。
+用来获取日期或时间信息的函数通常以 _get_ 开头,例如:_getFullYear(), getMonth(), getDate(),
+getDay(), getHours(), getMinutes, getSeconds(), getMilliseconds(), getTime(), getDay()_ 等等。
+
+
+
+### 建立 time 对象
+
+time 对象提供了关于时间的信息。
+
+```js
+const now = new Date()
+console.log(now) // Sat Jan 04 2020 00:56:41 GMT+0200 (Eastern European Standard Time)
+```
+
+ 当我们创建了 time 对象后,我们可以用前面提到的 get 函数获取日期/时间信息。
+
+### 获取完整的年份
+
+获取完整的年份
+
+```js
+const now = new Date()
+console.log(now.getFullYear()) // 2020
+```
+
+### 获取月份
+
+获取月份
+
+```js
+const now = new Date()
+console.log(now.getMonth()) // 0, because the month is January, month(0-11)
+```
+
+### 获取日期
+
+获取日期
+
+```js
+const now = new Date()
+console.log(now.getDate()) // 4, because the day of the month is 4th, day(1-31)
+```
+
+### 获取星期日期
+
+获取星期日期
+
+```js
+const now = new Date()
+console.log(now.getDay()) // 6, because the day is Saturday which is the 7th day
+// Sunday is 0, Monday is 1 and Saturday is 6
+// Getting the weekday as a number (0-6)
+```
+
+### 获取小时数
+
+获取小时数
+
+```js
+const now = new Date()
+console.log(now.getHours()) // 0, because the time is 00:56:41
+```
+
+### 获取分钟数
+
+获取分钟数
+
+```js
+const now = new Date()
+console.log(now.getMinutes()) // 56, because the time is 00:56:41
+```
+
+### 获取秒数
+
+获取秒数
+
+```js
+const now = new Date()
+console.log(now.getSeconds()) // 41, because the time is 00:56:41
+```
+
+### 获取时间
+
+以下两种方法可获取自1970年1月1日(Unix time)到目前时刻的毫秒数。
+
+1. Using _getTime()_
+
+```js
+const now = new Date() //
+console.log(now.getTime()) // 1578092201341, 自1970年1月1日到目前时刻(2020年1月4日 00:56:41)的毫秒数。
+```
+
+2. Using _Date.now()_
+
+```js
+const allSeconds = Date.now() //
+console.log(allSeconds) // 1578092201341, 自1970年1月1日到目前时刻(2020年1月4日 00:56:41)的毫秒数
+
+const timeInSeconds = new Date().getTime()
+console.log(allSeconds == timeInSeconds) // true
+```
+
+让我们来将这些值转换为方便识别的格式。
+**Example:**
+
+```js
+const now = new Date()
+const year = now.getFullYear() // return year
+const month = now.getMonth() + 1 // return month(0 - 11)
+const date = now.getDate() // return date (1 - 31)
+const hours = now.getHours() // return number (0 - 23)
+const minutes = now.getMinutes() // return number (0 -59)
+
+console.log(`${date}/${month}/${year} ${hours}:${minutes}`) // 4/1/2020 0:56
+```
+
+🌕 你有无尽的能量!你刚刚完成了第三天的挑战,距离牛逼侠已经迈出了三大步。现在又到了熟悉的快乐作业时间。
+
+## 💻 第三天:作业
+
+### 作业:难度水平 1
+
+1. 声明变量,命名为 firstName, lastName, country, city, age, isMarried, year 并赋值,用 typeof 运算符检视每一个变量的数据类型;
+2. 检查 '10' 的数据类型是否等于 10;
+3. 检查 parseInt('9.8') 是否等于 10;
+4. 布尔值只有true和false两个取值:
+ 1. 写出三个返回true的JavaScript语句;
+ 2. 写出三个返回false的JavaScript语句;
+
+5. 在大脑中计算以下表达式的返回值,再用 console.log() 验证:
+ 1. 4 > 3
+ 2. 4 >= 3
+ 3. 4 < 3
+ 4. 4 <= 3
+ 5. 4 == 4
+ 6. 4 === 4
+ 7. 4 != 4
+ 8. 4 !== 4
+ 9. 4 != '4'
+ 10. 4 == '4'
+ 11. 4 === '4'
+ 12. 返回“python”和“jargon”的字符串长度,并编写一个返回false的语句。
+
+6. 在大脑中计算以下表达式的返回值,再用 console.log() 验证:
+ 1. 4 > 3 && 10 < 12
+ 2. 4 > 3 && 10 > 12
+ 3. 4 > 3 || 10 < 12
+ 4. 4 > 3 || 10 > 12
+ 5. !(4 > 3)
+ 6. !(4 < 3)
+ 7. !(false)
+ 8. !(4 > 3 && 10 < 12)
+ 9. !(4 > 3 && 10 > 12)
+ 10. !(4 === '4')
+ 11. “on” 既不存在于 “dragon” 也不存在于 “python”;
+
+7. 使用Date对象回答以下问题:
+ 1. 今天的年份是?
+ 2. 今天的月份用数字表示是?
+ 3. 今天的日期是?
+ 4. 今天的日期用数字表示是?
+ 5. 现在是几点?
+ 6. 现在是几分?
+ 7. 现在距离1970年1月1日过去了多少秒?
+
+### 作业:难度水平 2
+
+1. 编写一段代码:弹出对话框让用户输入三角形的底和高,计算面积并返回。 (面积 = 0.5 x 底 x 高).
+
+ ```sh
+ 输入 底: 20
+ 输入 高: 10
+ 这个三角形的面积是: 100
+ ```
+
+2. 编写一段代码:弹出对话框让用户输入三角形的三条边,计算周长并返回。 (周长 = 边1 + 边2 + 边3)
+
+ ```sh
+ 输入 边1: 5
+ 输入 边2: 4
+ 输入 边3: 3
+ 这个三角形的周长是: 12
+ ```
+
+3. 用对话框输入长和宽,计算长方形面积和周长。
+4. 用对话框输入半径,计算圆的面积和周长。(面积 = pi x 半径 x 半径, 周长 = 2 x pi x 半径,pi = 3.14)。
+5. 计算线段 y = 2x -2 的斜率、与x轴的交点,和与y轴的交点。
+6. 斜率计算公式是 m = (y2-y1)/(x2-x1). 计算两个点 (2, 2),(6,10) 之间线段的斜率。
+7. 对比5和6的两个斜率。
+8. 根据方程 (y = x2 + 6x + 9). 用不同的x计算y的值,并找到使 y = 0 的x值。
+9. 编写一段代码:弹出对话框让用户输入小时和时薪,计算收入:
+
+ ```sh
+ 输入 小时数: 40
+ 输入 时薪: 28
+ 你的每周收入为: 1120
+ ```
+
+10. 如果你的名字的长度大于7个字符,返回“你的名字好长啊~”,否则返回“你的名字好短啊~”。
+11. 对比你的名和姓的长度(拼音),并输出以下:
+
+ ```js
+ let firstName = 'Asabeneh'
+ let lastName = 'Yetayeh'
+ ```
+
+ ```sh
+ 你的名儿 Asabeneh 比你的姓儿 Yetayeh 长。
+ ```
+
+12. 声明两个变量 _myAge_ 和 _yourAge_ 按以下赋值,并输出结果:
+
+ ```js
+ let myAge = 250
+ let yourAge = 25
+ ```
+
+ ```sh
+ 老子比你大225岁!
+ ```
+
+13. 用对话框获取用户的出身年份,如果用户超过17岁,则允许用户开车,否则提示用户需要等几年。
+
+ ```sh
+
+ 输入 出身年份:1995
+ 你今年25岁,可以开车了!
+
+ 输入 出身年份:2005
+ 你才15岁. 还需要再过3年才能开车!
+ ```
+
+14. 编写一段代码:弹出对话框让用户输入年数,转换成秒数。比如,假设某人活了100岁,输出以下:
+
+ ```sh
+ 输入 你活了多少岁:100
+ 你已经度过了 3153600000 秒
+ ```
+
+15. 用以下格式显示当前日期:
+ 1. YYYY-MM-DD HH:mm
+ 2. DD-MM-YYYY HH:mm
+ 3. DD/MM/YYYY HH:mm
+
+### 作业:难度水平 3
+
+1. 用 Date time对象创建一个可读的时间格式,其中小时数和分钟数必须占两位(例如7小时5分钟显示07:05)
+ 1. YYY-MM-DD HH:mm eg. 20120-01-02 07:05
+
+[<< Day 2](../第二天_数据类型/第二天_数据类型.md) | [Day 4 >>](../04_Day_Conditionals/04_day_conditionals.md)