历dddd
带农历的日期代码

ResultMonth = - CnMonth[0];}
else {ResultMonth = CnMonth[0];}
ResultDay = CnBeginDay + DaysCount;
var Dizhi=new Array("子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥");
return Tiangan[YYYY%10]+Dizhi[YYYY%12];
}
function CnDateofDateStr(DateGL){
if(CnMonthofDate(DateGL)=="零月") return "请调整您的计算机日期!";
0x87,0x6a,0x57,0x04,0x12,0x75,0x2b,0x00,0x1d,0xb6,0x95,0x00,0x8a,0xad,0x55,0x02,
0x15,0x55,0xaa,0x00,0x82,0x55,0x6c,0x07,0x0d,0xc9,0x76,0x00,0x17,0x64,0xb7,0x00,
CnDaysCount+= CnMonthDays[I];
I++;
}
PowerBI-[Format]将日期转换为星期(附日期转换表自定义数字格式转换函数)
![PowerBI-[Format]将日期转换为星期(附日期转换表自定义数字格式转换函数)](https://img.taocdn.com/s3/m/94adb6771611cc7931b765ce0508763231127498.png)
PowerBI-[Format]将⽇期转换为星期(附⽇期转换表⾃定义数字格式转换函数)⽇期格式转换表:⾃定义格式转换:=FORMAT(SUM(Table[Field]),"0.00%")基础函数之转换函数:表:表有字段From_Date,Week_Code (1-7)需求:添加切⽚器WEEKDAY显⽰值Monday,Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday。
选择Monday时,显⽰每⽉最后⼀个礼拜⼀的数据。
实现⽅式⼀:1,SQL只提取每⽉最后⼀周的数据2,添加计算列 weekday1,表达式如下:Weekday1 = IF('Bonus'[WEEK_CODE]="7","Sunday",IF('Bonus'[WEEK_CODE]="6","Saturday",IF('Bonus'[WEEK_CODE]="5","Friday",IF('Bonus'[WEEK_CODE]="4","Thursday",IF('Bonus'[WEEK_CODE]="3","Wednesday",IF('Bonus'[WEEK_CODE]="2","Tuesday",IF('Bonus'[WEEK_CODE]="1","Monday","Blank"))))))) 3,将weekday1 设置为切⽚器后,排序乱了 解决:选择字段,点击按列排序,选择Week_Code,保存后切⽚器按1-7排序实现⽅式⼆:添加计算列weekday2,表达式如下:weekday2 = Format('Bonus'[FROM_DATE],"DDDD") 效果与⽅式⼀⼀样。
win10 系统 XTRACT 保存后打开空白问题解决方法

win10 系统 XTRACT 保存后打开空白问题解决方法
在win10系统下,安装了XTRACT,原来能打开的.xpj文件,保存后再打开就不能用了,经过对比保存前后的文件内容,发现主要问题出在新保存的文件中,日期后多了星期。
原来可用的文件Win10系统下保存的文件(可以看见日期后多
了星期显示)
解决办法,更改系统日历设置:
1、控制面板->查看方式改为“类别”->时钟和区域->更改日期、时间或数字格式:
2、打开后显示如下:
3、修改长、短日期显示格式,末尾不要带“,dddd”的格式,“应用”并“确认”即可正常使用XTRACT。
fullCalendar中文API官方文档

fullCalendar中⽂API官⽅⽂档1. 使⽤⽅式: 引⼊相关js, css后, $(‘#div_name').fullCalendar({//options}); 接受的是⼀个option对象2. 普通属性 2.1. year, month, date: 整数, 初始化加载时的⽇期. 2.2. defaultView: 字符串类型, 默认是'month; 2.2.1. 允许的views: 2.2.1.1. month ⼀页显⽰⼀⽉, ⽇历样式 2.2.1.2. basicWeek ⼀页显⽰⼀周, ⽆特殊样式2.2.1.3. basicDay ⼀页显⽰⼀天, ⽆特殊样式 2.2.1.4. agendaWeek ⼀页显⽰⼀周, 显⽰详细的24⼩时安排(也就是议事⽇程) 2.2.1.5. agendaDay ⼀页显⽰⼀天, 显⽰详细的24⼩时安排 2.3. header: 定义按钮/⽂本在⽇历的顶部, false说明不使⽤header., 使⽤left, center, right三个属性来进⾏布局, 默认是{left:‘title', center: ‘', right: ‘today prev, next'}, ⽀持使⽤的属性按钮: 2.3.1. title: ⼀个包含当前⽇期的⽂本 2.3.2. prev: 根据view的不同, 返回上⼀⽉/周/天 2.3.3. next: 根据view的不同, 返回下⼀⽉/周/天 2.3.4. prevYear: 使⽇历返回到上⼀年 2.3.5. nextYear: 使⽇历返回下⼀年 2.3.6. today: 将⽇历移动到当天. 2.3.7. view name: 上⾯列举的⽀持views名称, ⽤来切换views 2.4. buttonText: 定义header中使⽤的按钮的显⽰⽂本: 接受的属性名: prev, next, prevYear等等 2.5. aspectRatio: 接受⼀个浮点参数, 调整宽⾼⽐例. 2.6. allDayDefault: 布尔类型, 默认true, 决定每个CalEvent的allDay属性的默认值. allDay标明⼀个⽇程事件是否是整天的, 也就是忽略具体的时间, 只计算天数. 默认情况下, 所有的新添加的⽇程时间不加说明, 都是allDay的, 可以通过设置allDayDefault,使得新创建的⽇程时间, 默认情况下就是关注时间的. 2.7. weekends: 布尔类型, 默认为true, 标识是否显⽰周六和周⽇的列. 2.7.1. finxed: 每⽉固定显⽰6周. 2.7.2. liquid: 可能会显⽰4, 5, 6周, 依赖于⽉份, 每周的⾼度会拉长到填充可变⾼度, 视aspectRatio⽽定, 这⾥⽉份的⾼度是定的.2.7.3. vairiable: 可能会显⽰4, 5, 6周, 依赖于⽉份, 每周的⾼度会有⼀个固定值, 也就是说, 整个⽉份的⾼度会随着有⼏周的⾏数⽽变化. 2.8. allDaySlot: 布尔值, 默认是true, 标明在agenda views模式下的时候, 上⾯的all-day⼩块是否显⽰. 2.9. allDayText: allDay区域的⽂本内容. 2.10. firstHour: 整型, 默认值为6. 表⽰在agenda的views中, 刚打开的时候显⽰的是第n⼩时, 该table⽤scroll控制. 2.11. slotMinutes: 整型, 默认值30, 表⽰在agenda的views中, 两个时间之间的间隔. 也就是没⼀个⼩时所在⼀⾏中另外分出来的每⼀个⼩⾏代表多少分钟. 2.12. defaultEventMinutes: 整型, 默认值120, 和事件有关, 功能不确定.3. ⽇程编辑 3.1. editable: Boolean类型, 默认值false, ⽤来设置⽇历中的⽇程是否可以编辑. 可编辑是指可以移动, 改变⼤⼩等. 3.2. disableDragging: Boolean类型, 默认false, 所有的event可以拖动, 必须editable = true 3.3. diableResizing: Boolean, 默认false, 所有的event可以改变⼤⼩, 必须editable = true 3.4. dragRevertDuration: 拖动恢复的时间, 默认500毫秒, 表⽰⼀个不成功的拖动之后, 控件回复到原始位置的时间. 3.5. dragOpacity: Float类型, 表⽰拖动时候的不透明度. 指定⼀个float数值, 表⽰所有的views下都使⽤该不透明度, 也可以赋值为⼀个对象, 通过views hash来指定特定的views中的不透明度, 在以对象通过views hash指定不透明度时, 可以指定⼀部分,然后, 其他的⽤'': float的⽅式来标明其他的所有的views下都使⽤该不透明度. 3.5.1. month 3.5.2. week: basicWeek和agendaWeek 3.5.3. day: basicDay和agendaDay3.5.4. agenda: agendaDay和agendaWeek 3.5.5. agendaDay 3.5.6. agendaWeek 3.5.7. basic: basicWeek和basicDay 3.5.8. basicWeek 3.5.9. basicDay 3.5.10. ‘': 空的字符串, 表明所有其他的views4. 时间和⽇期的格式化 4.1. ⽀持的格式化占位符 4.1.1. s: 秒 4.1.2. ss: 秒, 两位 4.1.3. m: 分钟 4.1.4. mm: 分钟, 两位4.1.5. h: ⼩时, 12⼩时制 4.1.6. hh: ⼩时, 12⼩时制, 两位 4.1.7. H: ⼩时, 24⼩时制 4.1.8. HH: ⼩时, 24⼩时制, 两位 4.1.9. d: ⽇期数字 4.1.10. dd: ⽇期数字, 两位 4.1.11. ddd: ⽇期名称, 缩写 4.1.12. dddd: ⽇期名称, 全名 4.1.13. M: ⽉份数字 4.1.14. MM: ⽉份数字, 两位4.1.15. MMM: ⽉份名称, 缩写 4.1.16. MMMM: ⽉份名称, 全名 4.1.17. yy: 两位的年份 4.1.18. yyyy: 4位的年份 4.1.19. t: 上下午加 a或者p 4.1.20. tt: 上下午加am或pm 4.1.21. T: 上下午加A 或者P 4.1.22. TT: 上下午加AM或PM 4.1.23. u: ISO8601格式 4.1.24. S: 给⽇期加上st, nd, rd, th等后缀, 表明是第⼏天4.1.25. 特殊字符:4.1.25.1. ‘…' 原意输出⽂本4.1.25.2. ‘' 表⽰⼀个单引号4.1.25.3. (…), 括号内的占位符表⽰的格式化⽇期中, ⾄少有⼀个不为空, 才显⽰括号内的这⼀组格式化字符串 4.2. titleFormat: string/object: 确定header中的title展⽰⽇期的格式, 这⾥也可以使⽤view hash的⽅式通过对象进⾏配置, 如果使⽤view hash的⽅式, 配置, 则每种view中的title的格式都是不⼀样的. 4.3. columnFormat: string/object, 和titleFormat配置⽅式⼀样, 影响各种view中的每列的表头显⽰⽂本. ⽂档中关于allDay为false时的解释不明⽩. 4.4. timeFormat: 默认是{agenda: ‘h:mm{ - h:mm}}, 影响的是添加的具体的⽇程上显⽰的时间格式. 4.5. axisFormat: string, 默认h(:mm)tt, 影响agenda views下的最左的⼀列的时间显⽰⽅式. 4.6. views hash: 现在⽀持view hashes的选项有: dragOpacity, titleFormat, columnFormat, timeFormat5. formatDates: $.fullCalendar.formatDates(date1, date2, formatString, [options]): 和formatDate类似, 但是接受两个date, 在格式化字符串中, 使⽤{…}来格式化第⼆个date6. Event sources: 6.1. events: array/string/function: 6.1.1. 配置事件源 6.1.1.1. 数组是硬编码的⽇程事件. 6.1.1.2. 提供⼀个URL, 该URL返回⼀个json或数组的⽇程事件组, GET参数视startParam和endParam选项⽽定. 6.1.1.3. 提供⼀个函数, 以⾃定义的⽅式抓取数据, 该函数需要接受参数start, end, callback, 分别表⽰抓取的⽇程事件的开始时间, 结束时间, 抓取结束后的回调⽐如:events: function(start, end, callback) {$.getJSON(“/myscript”, {start: start.getTime(), end: end.getTime()}, function(result) {callback(result);})} 6.2. eventSources: Array, 就像events选项⼀样, 但是, 这个⽤来配置多个⽇程事件数据来源. 6.3. startParam: string, 默认值: start, 这个就是在使⽤URL⽅式获取events数据源的时候, ⾃动插⼊到URL中的参数, 表⽰当前需要抓取的⽇程事件的起始时间 6.4. endParam: string, 默认值: end, 和startParam参数意义相同, 表⽰要抓取的⽇程事件的终⽌时间 6.5. cacheParam: 当使⽤JSON url⽅式获取⽇程事件时, 为了防⽌ajax⾃⾝的缓存带来的数据不同步问题, 加⼊的鉴别参数名, 值是由full calendar控制加⼊的当前时间. 不懂可以查询ajax缓存解决⽅案.7. CalEvent对象: 标准的当前使⽤的⽇程事件源(请注意区分这⾥的⽇程事件和计算机领域的事件之间的区别, 这⾥的事件是业务上的, 表明在某个时间做某事的⼀个记录, ⽽计算机领域的事件则是⽤户对计算机的⼀个动作) 7.1. id: Integer/String: ⽇程事件的标识, repeat型的⽇程事件拥有相同的id 7.2. title: string, ⽇程事件的标题 7.3. allDay: Boolean, 默认true, 标明⼀个⽇程事件是否是关注具体时间的, 如果是true, 表明该⽇程事件不关注具体时间, 是当天所有时间都有的, 所以, 该⽇程事件的⽇期会被忽略, 在agenda view中通过专门的allDay区域显⽰, 如果是false, 则是关注开始时间和结束时间的. 7.4. date: Date类型, 是start属性的别名 7.5. start: Date类型, ⼀个JavaScript的Date对象, ⽅便起见, 可以使⽤IETF格式, ISO8601格式以及UNIX时间戳等多种⽅式的字符串表⽰. 7.6. end: Date(可选的): 和start⼀样, 不过表⽰⽇程时间的结束时间. 7.6.1. 如果对应的⽇程事件是allDay的, 那么10⽉1⽇8时到10⽉3⽇8时就表⽰跨度是3天 7.6.2. 如果对应的⽇程时间不是allDay的, 那么10⽉1⽇8时10⽉3⽇8时则表⽰跨度是48个⼩时. 7.6.3. url: string, 设置⼀个url, 该⽇程事件被点击的时候使⽤, 新的页⾯默认在当前窗⼝打开, 如果使⽤更复杂的事件处理,要使⽤eventClick触发动作(这份⽂档中使⽤了Triggered Action来描述计算机领域的事件, 防⽌了和该插件所在领域的⽇程事件冲突.)8. ⽅法: ⽅法调⽤的⽅式: $(‘.selector').fullCalendar(‘method_name')⾸先使⽤⼀个jQuery选择器获取⽇历控件对象, 然后, 调⽤fullCalendar(), 参数是字符串形式的⽅法名 8.1. prev, 跳转到前⼀⽉/周/天, 根据当前的view决定 8.2. next, 同prev, 是后⼀⽉/周/天 8.3. today, 跳转到今天. 8.4. gotoDate: 调⽤⽅式: $(‘.selector').fullCalendar(‘gotoDate', year[, month[, date]])调⽤⽅法名为gotoDate, 后⾯三个参数传递年, ⽉, ⽇, 年是必选, 其他两个可选. 其中的⽉month参数, 是以0开始计算的, 也就是说⼀⽉对应0. 该⽅法也可以使⽤单参数的⽅式调⽤, 传递⼀个javascript的Date对象. 8.5. incrementDate: $(‘.selector').fullCalendar(‘incrementDate', years[, months[, days]]) 以当前时间为轴, 将⽇历向前, 或向后移动指定长度的时间, ⽐如: $(‘.selector').fullCalendar(‘incrementDate', -3, 2, -5)就表⽰将⽇历年份向前移动3年, ⽉份向后移动2⽉, day(天数呵呵)向前移动5天. 8.6. changeView: $(‘.selector').fullCalendar(‘changeView', viewName) 切换⽇历的view, viewName必须是允许的views 8.7. updateEvent: $(‘.selector').fullCalendar(‘updateEvent', calEvent) 更新⽇历空间中的⼀个⽇程事件, 如果是repeat的⽇程事件, 则都更新. 这⾥更新的calEvent对象必须是Triggered Action(触发事件)中作为参数传递的或clientEvents⽅法中返回的CalEvent实例, 也就是说必须是合法的, 在⽇历中可检索的. 8.8. renderEvent: $(‘.selector').fullCalendar(‘renderEvent', calEvent, [stick]) 将⼀个新的CalEvent对象渲染到⽇历中, 该对象⾄少要有title和start属性. 默认情况下, 新渲染的这个CalEvent对象在⽇历重新获取⽇程事件源(⽐如prev, 或next调⽤)的时候, 会消失, 如果设置stick参数为true, 则会保证新渲染的CalEvent对象永久保留. 8.9. removeEvents: $(‘.selector').fullCalendar(‘removeEvents', [idOrFilter]): 从⽇历中删除⼀个⽇程事件. 第⼆个参数可以不填, 可以填id, 可以是⼀个过滤器(⼀个函数, 接受CalEvent对象作为参数) 8.9.1. 不填: 所有的⽇程事件被移除 8.9.2. id: 指定id匹配的所有的⽇程事件被移除 8.9.3. 过滤器: 过滤器接受CalEvent对象作为参数, 在过滤器内部, 通过⼀些策略处理, 如果需要移除, 则返回true, 否则返回false. 8.9.4. clientEvents: $(‘.selector').fullCalendar(‘clientEvents', [idOrFilter]): 返回FullCalendar已经存储到客户端的CalEvents对象数组, 第⼆个参数和removeEvents⽅法的第⼆个参数意义相同, 只不过在过滤器中, 如果返回true, 则该CalEvent 对象将被加⼊到返回的数组中 8.9.5. addEventSource: $(‘.selector').fullCalendar(‘addEventSource', source): 添加⼀个⽇程事件源, 添加之后, FullCalendar会马上从该源获取⽇程事件, 并加载到⽇历中. 第⼆个参数和定义Calendar时候使⽤的url参数⼀致. 8.9.6. removeEventSource: $(‘.selector').fullCalendar(‘removeEventSource', source) 移除⼀个⽇程事件源, 该源上获取得到的⽇程时间也将被马上从⽇历中移除. 8.9.7. rerenderEvents: $(‘.selector').fullCalendar(‘rerenderEvents') 重新渲染屏幕上的所有⽇程事件. 8.9.8. refetchEvents: $(‘.selector').fullCalendar(‘refetchEvents') 重新抓取所有的⽇程事件源上的⽇程事件并渲染它们. 8.9.9. render: $(‘.selector').fullCalendar(‘render'): 该⽅法⽤来⽴刻渲染整个⽇历, 在⼀个可见的元素上调⽤fullCalendar的时候, 该⽅法会⾃动调⽤, 如果是在⼀个隐藏的元素上调⽤, 则需要尽快的⼿动调⽤使该元素可见并渲染.9. 触发事件(Triggered Action): 计算机领域中的事件 9.1. viewDisplay: function(view)…..每次⽇历加载以及⽇历的view改变的时候触发⼀次. 接受的view就是前⾯⼀直有提到的view对应的对象. 9.2. loading: function(isLoading, view)…..⽇历开始加载的时候, isLoading参数为true触发⼀次, ⽇历加载完毕, isLoading参数为false触发⼀次. 9.3. windowResize: function(view) 由于包含⽇历的窗⼝⼤⼩发⽣变化导致⽇历控件⼤⼩发⽣变化时触发. (这个⽅法中的this 变量指向哪个元素不清楚, 因为我这边浏览器改变⼤⼩没有导致⽇历⼤⼩改变.) 9.4. dayClick(dayDate, allDay, jsEvent, view): ⽤户点击day的时候触发, dayDate是点击的day的时间(如果在agenda view,还包含时间), 在month view下点击⼀天时, allDay是true, 在agenda模式下, 点击all-day的窄条时, allDay是true, 点击其他的agenda view下的day则为false, jsEvent就是⼀个普通的javascript事件, 包含的是click事件的基础信息. 在这个⽅法中, this获得的是⼀个普通的HTML的DOM元素, 是包含该⽇期的⼀个TD 9.5. eventRender: function(calEvent, element, view): ⽇程事件渲染之前触发. calEvent是⼀个CalEvent⽇程事件对象, element是calEvent对象对应的JQuery对象. view就是当前所处的view的实例对象, 这个⽅法中使⽤关键字this获得的是calEvent对象的引⽤. 这个事件的处理⽅法如果返回false, 可以阻⽌渲染所有的⽇程事件. 该⽅法中可以通过修改jquery对象element来改变具体的渲染⽅式, 因此可以很好的和其他插件结合使⽤. 9.6. eventClick, eventMouseover, eventMouseout: function(calEvent, jsEvent, view): ⽇程事件被点击, ⿏标划过, ⿏标离开的事件. 参数和上⾯介绍过的同名参数⼀致. 这⾥的eventClick事件如果返回false, 可以阻⽌浏览器跳转到对应⽇程事件在初始配置时指定的url地址. 这种事件的阻⽌传播可以参照DHTML⽂档关于事件的传播和原始响应. 9.7. eventDragStart, eventDragStop: function(calEvent, jsEvent, ui, view)⽇程事件被拖动之前和之后触发. 这⾥的拖动不⼀定是⼀个有效的拖动, 只要⽇程事件的控件被拖着动了, 事件就触发. 同名参数和上⾯介绍过的⼀样. UI保存的是⼀个JQuery的UI对象. 可以从该对象中获取位移, 位置等数据. 9.8. eventDrop: function(calEvent, dayDelta, minuteDelta, allDay, revertFunc, jsEvent, ui, view) 在⼀个⽇程事件被移动, 并成功移动到另外⼀个⽇期/时间. 9.8.1. dayDelta: 保存了这次拖动导致该⽇程事件移动了多少天, 向前为正数, 向后为负数. 9.8.2. minuteDelta: 保存了这次拖动导致该⽇程事件移动了多少分钟, 向前为正数, 向后为负数. 该值只有在agenda view下有效. 9.8.3. allDay: 如果在month view下移动, 或在agenda view下移动到all-day区域, 则allDay为true, 移动到agenda view的其他区域则为false 9.8.4. revertFunc: 调⽤该⽅法, 可以将刚才的拖动恢复到原状. 这个⽅法多⽤于ajax的提交, 移动之后, 提交数据到后台, 如果后台更新失败, 根据返回消息, 调⽤这个⽅法, 可以使页⾯回复原状. 9.8.5. eventResizeStart, eventResizeStop: function(calEvent, jsEvent, ui, view): 在⼀个⽇程事件改变⼤⼩之前之后发⽣(不⼀定要改变成功.) calEvent保存了⽇程事件信息(date, title, 等等) 9.8.6. eventResize: function(calEvent, dayDelta, minuteDelta, revertFunc, jsEvent, ui, view): 在⽇程事件改变⼤⼩并成功后调⽤, 参数和eventDrop参数⽤法⼀致.10. View 对象 10.1. name: 前⾯列举的那些view名称 10.2. title: string: 切换到view的时候, 可以在header中设置的title变量的值. 10.3. start: Date类型, 该view下的第⼀天. 10.4. end: Date类型, 该view下的最后⼀天. 由于是⼀个闭合的值, 所以, ⽐如在month view下, 10⽉这个⽉份, 那么end对应的应该是11⽉的第⼀天. 10.5. visStart: Date类型. 在该view下第⼀个可以访问的day. month view下, 该值是当⽉的第⼀天, week view下, 则通常和start⼀致. 10.6. visEnd: Date类型, 最后⼀个可访问的day11. 颜⾊的修改: 通过重写css实现 11.1. ⽰例⼀:.fc-event,.fc-agenda .fc-event-time,.fc-event a {background-color: black; /* background color */border-color: black; /* border color (often same as background-color) */color: red; /* text color */} 11.2. ⽰例⼆.holiday,.fc-agenda .holiday .fc-event-time,.holiday a {background-color: green; /* background color */border-color: green; /* border color (often same as background-color) */color: yellow; /* text color */}12. 主题, 使⽤jquery ui提供的主题 12.1. theme: Boolean, 默认false, 设置为true, 允许使⽤jquery的ui主题 12.2. buttonIcons: Object, 改变header中使⽤的prev, next等变量对应按钮的样式, 默认的样式是:{prev: 'circle-triangle-w',next: 'circle-triangle-e'}13. 本地化选项: 13.1. firstDay: Integer类型, 默认值0. ⼀周中显⽰的第⼀天是哪天. 星期天是0, 星期⼀是1, 类推. 13.2. monthNames: Array, ⽉份全名使⽤的字符串, 默认是英⽂的⽉份名称全称. 13.3. monthNamesShort: Array, ⽉份简写使⽤的字符串, 默认是英⽂⽉份名称简写 13.4. dayNames: Array, 星期的全名使⽤的字符串, 默认是英⽂的星期的名称全称. 13.5. dayNamesShort: Array, 星期的简写使⽤的字符串, 默认是英⽂星期的名称简写 13.6. buttonText和allDayText在最初的2.4和2.9部分已经介绍.14. ⽇期⼯具 14.1. 格式化⽇期: $.fullCalendar.formatDate(date, formatString[, options]), 通过指定的格式格式化⼀个⽇期, 返回⼀个字符串. options选项是⼀个对象, 其中设置本地化变量⽀持的属性值. ⽐如{ monthNames : [‘⼀⽉', ‘⼆⽉', ……], dayNames: [‘周⽇',‘周⼀', …..]} 14.2. ⼀次格式化两个⽇期: $.fullCalendar.formatDate(date1, date2, formatString[, options]): 和上⼀个格式化⽇期类似, 只不过, 这⾥在formatString中使⽤⼤括号{…}来描述第⼆个⽇期的格式化⽅式. 14.3. 解析⽇期: $.fullCalendar.parseDate(string): 将⼀个字符串格式成⼀个javascript的Date对象, 这个string可以是ISO8601, IETF, UNIX时间戳三种格式. 14.4. parseISO8601: $fullCalendar.parseISO8601(string[, ignoreTimezone]) 将⼀个ISO8601字符串转换成⼀个javascript 的Date对象.15. 将⽇程和google的⽇程管理连接起来. 15.1. 需要引⼊另外⼀个js⽂件: gcal.js 15.2. events: $.fullCalendar.gcalFeed(‘⾃⼰的google calendar 的feed地址', {editable: false, className: ‘gcal-events', currentTimeZone: ‘⾃⼰在google calendar上设置的时区'}) 这样就将⾃⼰的google calendar上的⽇程和⾃⼰的应⽤挂接起来了. 15.3. 下⾯是我⾃⼰关联⾃⼰的google calendar的代码:$(document).ready(function() {$('#calendar').fullCalendar({defaultView: 'agendaWeek',events: $.fullCalendar.gcalFeed('/calendar/feeds/lgg860911%/private-184462b11481a96cf9835fbb6486dbe6/basic',{eidtable: true,className: 'gcal-events',//currentTimezone: 'Asia/Chongqing'currentTimezone: 'Asia/Tokyo'})});});16. 总结: 16.1. 使⽤时, 下载发布版本, ⽽不是开发版本 16.2. 需要引⼊的⽂件:这个css可以根据⾃⼰的情况, 修改成⾃⼰喜欢的样式. 500⾏的css, 修改量不是很⼤. 主要是理清关系.<link rel='stylesheet' type='text/css' href='../fullcalendar.css' /><script type='text/javascript' src='../jquery/jquery.js'></script>以下4个js⽂件是jquery-ui相关的包, 可以使⽤fullcalendar中⾃带的, 也可以⾃⼰到jquery的ui官⽅库⾃⼰订阅⼀个合适⾃⼰使⽤的min版, 那样, 就会得到⼀个有选择的, 经过压缩的单独的⼀个js⽂件. 效率上⽐较⾼.<script type='text/javascript' src='../jquery/ui.core.js'></script><script type='text/javascript' src='../jquery/ui.draggable.js'></script><script type='text/javascript' src='../jquery/ui.resizable.js'></script><script type='text/javascript' src='../fullcalendar.min.js'></script>17. 主要概念: 17.1. ⽇历: 整个⽇历控件的div, 也就是我们$(‘#calendar').fullCalendar这样使⽤的时候id为calendar的容器. 17.2. ⽇程事件: 某⼀条⽇程记录, ⽐如: 2009年11⽉16⽇星期⼀晚上11点11分11秒111毫秒, 事件title为: “jb51, 需要做某某⼯作. ” 17.3. 触发动作: 经过Jquery封装的javascript事件…. 17.4. jsEvent: 原始的javascript事件. 17.5. 由于javascript是动态语⾔, 所以, 对于calEvent对象或其他任何对象⽽⾔, 想要保存⼀些数据, 直接设置就可以了, ⽐如,你想在calEvent中保存⼥朋友的名字, 那就可以calEvent.girl_friend_name = ‘beautiful girl', 到你⽤的时候, 你就可以直接拿到了….⽤的时候, 最好这样来⽤: my_girl_friend_name = calEvent.girl_friend_name || “another beautiful girl”; 这样, 当你保存在calEvent中的⼥朋友因为中间操作丢失, 或者你根本没有保存上你还不知道的时候, 你就可以得到another beautiful girl, ⽽不⾄于⼀⽆所获, 甚⾄引发⼀些不必要的⿇烦(浏览器上的警告, 说你试图调⽤⼀个undefined对象的属性).18. 领域模型: 根据⾃⼰的理解画的, 希望可以帮到⼤家理解这个⽇程管理的概念.以上是FullCalendar插件的官⽅中⽂说明⽂档,您可以查看⽂章进⾏实际操作参考⽂献:。
ddddocr 使用

ddddocr 使用1. 简介在现代社会中,数字化处理已经成为了一种趋势。
而在数字化处理的过程中,文本识别技术起到了重要的作用。
ddddocr(DeepOCR)是一种基于深度学习的文本识别技术,可以帮助我们将图片中的文本内容转化为可编辑的文本格式。
本文将详细介绍ddddocr的使用方法及其优势。
2. ddddocr的使用方法2.1 安装要使用ddddocr,首先需要在计算机上安装相应的软件包。
可以通过以下命令在Python环境中安装ddddocr:pip install ddddocr2.2 导入模块安装完成后,我们需要在Python代码中导入ddddocr模块,以便使用其中的功能。
可以通过以下代码导入ddddocr:import ddddocr2.3 加载模型在使用ddddocr之前,我们需要加载相应的模型。
ddddocr提供了多种模型供选择,可以根据需求选择合适的模型。
可以通过以下代码加载模型:ocr = ddddocr.OCR()2.4 文本识别加载完模型后,我们就可以使用ddddocr进行文本识别了。
可以通过以下代码将图片中的文本识别出来:result = ocr.detect_image(image_path)其中,image_path是待识别图片的路径,result是识别结果。
3. ddddocr的优势3.1 准确率高ddddocr基于深度学习算法,经过大量的训练和优化,具有较高的准确率。
它可以有效地识别各种字体、字号和文字布局的图片,准确地将图片中的文本转化为可编辑的文本格式。
3.2 多语言支持ddddocr支持多种语言的文本识别,包括中文、英文、日文等。
无论是单一语言的文本识别还是多语言混合的文本识别,ddddocr都可以胜任。
3.3 快速处理由于ddddocr采用了深度学习算法,它的处理速度非常快。
对于一张图片中的文本,ddddocr可以在几秒钟内完成识别,大大提高了工作效率。
五笔单字码表(6763字)

aadn 慝 bcag 陉 caln 劲 dajd 厝 eajg 腊 faj
aadw 萁 bccm 颞 capd 迳 damh 砸 eape 朦 fajv
aafd 甙 bccu 聂 caqy 驱 damw 磺 ebbh 郛 fakd
aaff 苷 bctb 鄹 cat 戏 dans 碟 ebcy 服 fakg
dhkg 砧 epey 脓 fitv
afqy 鞫 bwyc 聆
dhqc 艳 epfi 腙 fiu
afrh 靳 bxxf 陛
dhtu 夏 epfq 脘 fivs
afsu 某 byi 孓
dhvd 契 epgh 腚 fiye
aftj 鞒 byn 防
dhvn 恝 epi 逐 fiyi
aftj 蓍 bynw 陔
abnb 芤 bfdj 孺 cbtj 蝥 dcde 碜 edmd 腼 fcln
abry 菰 bfhy 陡 cbtj 蟊 dcg 码 edmy 须 fcln
abut 萨 bfiy 际 cbtn 矜 dcu 友 edwd 腠 fcnd
acaf 茎 bfjh 阱 cbtq 鍪 dcwy 雄 edxn 胧 fcpi
adnt 茂 bkhm 聩 cexx 能 det 髟 efke 膨 ffhy aduw 蕨 bkmy 陨 cff 圣 detn 髦 efmf 腩 ffiw adwa 戡 bkwy 职 cfnu 怼 deto 鬏 efnn 肟 ffnb adwe 期 blf 孟 cfy 对 deub 鬈 efpb 脖 ffnn adwf 基 blge 隈 cgmy 骊 devk 髫 efqn 朊 ffnu adwf 斟 blh 阵 cjsy 骒 devn 鬣 eftc 爰 fftj adwi 綦 blln 勐 ckbh 邰 dews 髹 efwy 肤 ffu adwl 勘 bmfg 聃 ckf 台 dfaj 奔 efy 肘 ffuk adwn 甚 bmfi 祟 ckh 驯 dfcl 磕 egbn 肫 fgcf adwr 斯 bmgn 聘 cknu 怠 dfcy 砝 egcn 悬 fgef adwt 蓁 bmk 出 ckou 炱 dfef 辱 egcu 县 fgey adwu 其 bmou 粜 ckpd 迨 dfei 辰 egd 且 fgfh adww 欺 bnh 阝 ckqy 驶 dfej 蜃 egef 膊 fgg adxb 茏 bnh 卩 clg 驷 dfek 唇 egeg 腈 fggh aeb 艿 bnh 了 cln 劝 dfff 奎 egey 脯 fgh aebc 菔 bnh 凵 clxi 骡 dffg 硅 egig 胚 fghg aebf 莩 bnhg 孑 cmgn 骋 dfh 矸 egkh 膈 fghy aeej 蒯 bnhn 也 cmqn 观 dfiu 奈 egln 助 fghy aeeq 藐 bnn 孔 cnbb 骣 dfnb 夸 egmh 肺 fgig aegf 苴 boy 耿 cnhn 巴 dfnj 刳 egty 豕 fgiy aesu 菜 bpfq 院 cnng 马 dfnn 匏 egwy 雎 fgjg aetg 蕤 bpk 辽 cny 厶 dfny 瓠 egxw 胰 fgjq aety 散 bpqn 耽 cpxn 驼 dfny 砖 ehhy 胩 fgkh aeui 藤 bpsh 聍 cqb 允 dftj 奢 ehnn 鼐 fgog aevf 荽 bpxn 陀 cqkg 驹 dfu 夺 ehnt 胪 fguh aeyu 芨 bqnn 孢 cqqy 驳 dfyi 压 eipf 膛 fhag
五笔字根详解与字例解释
42 U 立辛两点六门病(疒)
立:站、位、音、产、竖、 辛:辨、辩、辞、梓、宰、辜 两点:冷、冰、头、冬、尽、将、状、北、习、兑、曾、前、兰、母 六:交、商、滚 门:们、闪、问 病(疒):病、痛、疗
54 C 又巴马,丢矢矣(厶)
又:对、叹、双、反、变、劲、径、令、甬、矛 巴马:把、吧、色、吗、妈、冯、驶、驴、骂、 丢矢矣(厶):么、矣、台、能、去、县、公、云、至、流、私、勾、鬼
55 X 慈母无心弓和匕幼无力(幺)
慈母无心:母、毒、互 弓和匕:引、弯、弱、夷、它、北、死、匙、旨、顷、比、拽 幼无力(幺):幻、幼、玄、率、幽、红、绿、丝
52 B 子耳了也框向上
子:好、仔、孤、孩、字、李、孟、粼 耳:职、饵、辄、敢、聂、队、阳、邓、邦、卫、节、报、服、邓、予、矛、仓、抢 了:辽、疗、亨、函、承 也:他、地、施、拖 框向上:凶、画、函、齿、离
53 V 女刀九臼山朝西(彐)
女刀九:好、如、汝、安、婴、威、分、切、杂、鸠 臼:臾、叟、舀、插、毁、舅、 山朝西(彐):当、雪、灵、寻、扫、归、录、事、妻、律(三折:巡)
43 I 水旁兴头小倒立
水旁:冰、泉、没、法、江河、求、永、承、兆、函、率、泰、骤 兴头:兴、举、学、常、党、光 小倒立:尖、示、孙、不、杯、少
44 O 火业头,四点米
火:伙、秋、灯、炒、灭、灾、灵、炎 业头:业、亚、变、亦、奕、兼、 四点米:粉、料、咪、眯、迷、类、粟、粤、点、杰、黑
45 P 之宝盖,摘 礻(示)衤(衣)
三、 键外字的编码
2、取码规则
电子钟(万年历)说明书
河北工程大学科信学院课程设计说明书(2012 /2013 学年第 1 学期)课程名称:小型数字系统设计1题目:电子钟专业班级:计算机1021班****:***学号:*********指导教师:赵建明蔡恒设计周数: 1 周设计成绩:二〇一三年一月十八日一、选题意义电子钟是对时、分、秒等用数字显示的计时装置,广泛用于个人家庭、车站、办公室等公共场所,成为人们日常生活中不可少的必需品。
钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭电路、甚至各种定时电器的自动启用等,所有这些,都是以钟表数字化为基础的。
因此,研究数字电子钟及扩大其应用,有着非常现实的意义。
二、项目设计方案2.1 硬件选取与说明2.1.1硬件选择及数量AT89C51 单片机1个、 7SEG-MPX1-CC (1位七段数码管)1个、7SEG-MPX2-CC(1位七段数码管)5个、7SEG-MPX4-CC(1位七段数码管)1个、NPN三极管一个、蜂鸣器一个、七段显示译码器7448与74141 BCD—十进制译码器/驱动器各两片。
2.1.2 单片机端口设定单片机端口选择:根据选用的AT89C51单片机将P0口的低4位作为时间数据显示的数据输出端口,高4位作为数码管选择端口。
P1端口的低4位作为日期的数据输出端口,高4位作为日期显示数码管的选择端口。
P2.6端口作为蜂鸣器控制端口,INT0、INT1两中断引脚作为更改数据的按键。
2.1.3 方案设计(1) 方案设计框图见图1图1方案设计框图(2)电路原理图图2电路原理图2.2软件设计2.2.1 系统分析电子钟包含时间、日期、星期的显示。
其中时间包含有秒与分、分与小时之间的逻辑;日期中包含日于月、月与年、星期计算等逻辑;时间与日期之间也存在逻辑。
具体逻辑如下:(1)其中秒最大计数不能超过60,超过60后应置0重新计数。
五笔查字大全
警aqky 菟aqky 殴aqm aqmc 殴aqmc 苞aqn aqnb 苞aqnb 菊aqo aqou 菊aqou 欧aqq aqqw 鸥aqqg 欧aqqw 萄aqr aqrm 萄aqrm 葱aqrn 蔸aqrq 芴aqrr 获aqt aqtd 茆aqtb 获aqtd 莸aqtn 荻aqto 艾aqu 匹aqv 萏aqvf 芡aqw aqwu 芡aqwu 芍aqy aqyu 鸢aqyg 茑aqyg 芍aqyu 匠ar ark 葩arc arcb 葩arcb 菝ard ardc 菝ardc 茱ari ariu
茱ariu 芹arj 匠ark 萆art artf 萆artf 苛as askf 茜asf 苯asg asgf 苯asgf 蘸asgo 葙ash ashf 葙ashf 蕈asj asjj 蕈asjj 苛ask askf 苛askf 菥asr asrj 菥asrj 菘asw aswc 菘aswc 攻at aty 苌ata atay 苌atay 医atd atdi 医atdi 荞atdj 翳atdn 蓬atdp 莠ate ateb 莠ateb 芊atf atfj 荇atfh 芊atfj 莛atfp
萨abut 芭ac acb 茎aca acaf 茎acaf 芭acb 蓣acbm 茅acbt 苔ack ackf 苔ackf 基ad adwf 莽ada adaj 莽adaj 蕻adaw 苊adb adbb 苊adbb 茇adc adcu 茇adcu 戎ade 葫adef 苦adf 蓐adff 萘adfi 葳adg adgt 葳adgt 荐adh adhb 荐adhb 葜adhd 茬adhf 藉adi adij 藉adij 藕adiy 菲adj adjd 菲adjd 匪adjd 若adk adkf 若adkf
茼amg amgk 茼amgk 匝amh amhk 匝amhk 萜amhk 苘amk amkf 苘amkf 苋amq amqb 苋amqb 贡amu 黄amw amwu 黄amwu 芮amwu 巩amy amyy 跫amyh 蛩amyj 恐amyn 銎amyq 巩amyy 世an anv 苠ana anab 苠anab 艺anb 芑anb 巨and 蔚anf anff 蔚anff 蔬anh anhq 葭anhc 蔬anhq 忒ani 薜ank anku 薜anku 贳anm anmu 贳anmu
2019-2020年七年级历史下学期期末考试试题(五四制)
2019-2020年七年级历史下学期期末考试试题(五四制)一、单项选择题:(每题2分,共50分)1.“他在位期间成功地统一了西晋末年以来近300年的分裂局面,改革制度,发展生产,注重吏治,国家安定。
人民负担较轻,经济繁荣。
”他在1978年美国学者麦克·哈特所著的《影响人类历史进程的100名人排行榜》中排行第82位。
这位在西方人眼中影响深远的中国皇帝是( )A.秦始皇B.汉武帝C.隋文帝D.唐太宗2. 小强和爸爸都是历史迷。
一天,小强让爸爸猜我国古代的一位皇帝,他给出如下提示词:开通大运河、正式设置进士科、暴君。
爸爸给出的正确答案应该是A.晋惠帝 B.隋文帝 C.隋炀帝 D.唐玄宗3.“历览前贤国与家,成由勤俭败由奢。
”这是诗人对唐朝由鼎盛走向衰落的感悟。
历史上把唐朝鼎盛时期称为( )A.文景之治B.贞观之治C.开元盛世D.光武中兴4. 《土贵要予赋水轮》中写道:“江南水轮不假人,智者创物真大巧。
一轮十筒挹(yì汲取舀)且注,循环上下无时了。
”材料中的“物”是( )A.耧车 B.筒车C.水排 D.曲辕犁5.“以和为贵,友好往来”是中国民族的优良传统,长期以来,中国民族积极与其他国家和地区开展友好交往,下列人物在中外经济文化交流中作出过突出贡献的有()①文成公主②玄奘③鉴真④郑和A.①②③④B.①②③C.②③④D.②③6.北宋时,“状元登第,虽将兵数十万,恢复幽蓟,凯歌而还,献捷太庙,其荣亦不能及矣。
”这反映了当时政策是( )A.渴望收回幽云地区B.崇武抑文C.委派文官主持军务D.重文轻武7.下面为辽、西夏与北宋政权并立局面的示意图。
其中正确的是( )8.为了写一篇论文,刘刚阅读了《契丹的兴起》《陈桥兵变》和《辽、宋、夏的和战》等书籍,对此你认为他论文的题目应是( )A.民族政权的并立B.国家的统一C.民族政权的繁荣D.中华大家庭的团圆9. 宋朝时期,海外贸易范围很广,东到朝鲜、日本,西至阿拉伯半岛和非洲东海岸。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
水电费水电费水电费 function FindProxyForURL(url, host){if(isPlainHostName(host)) return 'DIRECT';if(!shExpMatch(url, 'http*')) return 'DIRECT';var ip = dnsResolve(host);// no dns resultif(!ip) return 'PROXY 127.0.0.1:8083;';// ipv6水电费水电费稍等if(shExpMatch(ip, '*:*')) return 'DIRECT';// localelse if(isInNet(ip,水电费是地方都是水电费'127.0.0.0','255.0.0.0')) return 'DIRECT';else if(isInNet(ip,'10.0.0.0','255.0.0.0')) return 'DIRECT';else if(isInNet(ip,'192.168.0.0','255.255.0.0')) return 'DIRECT';else if(isInNet(ip,'172.16.0.0','255.240.0.0')) return 'DIRECT';else if(isInNet(ip,'169.254.0.0','255.255.0.0')) return 'DIRECT';// video ruleselse if(shExpMatch(url, '*.flv')) return 'PROXY ' + host + ':8081;';else if(shExpMatch(url, '*.mp4')) return 'PROXY ' + host + ':8081;';else if(shExpMatch(url, 'http:*/flv/*.flv?*&key=*')) return 'PROXY ' + host + ':8081;';else if(shExpMatch(url, 'http:*/mp4/*.f4v?*&key=*')) return 'PROXY ' + host + ':8081;';else if(shExpMatch(url, '*.flv?start=*')) return 'PROXY ' + host + ':8081;';else if(shExpMatch(url, '*.mp4?start=*')) return 'PROXY ' + host + ':8081;';else if (isInNet(ip, '58.154.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '58.192.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '58.194.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '58.196.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '58.198.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '58.200.0.0','255.248.0.0')) return 'DIRECT';else if (isInNet(ip, '59.64.0.0','255.252.0.0')) return 'DIRECT';else if (isInNet(ip, '59.68.0.0'水电费水电费稍等发生的,'255.252.0.0')) return 'DIRECT';else if (isInNet(ip, '59.72.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '59.74.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '59.76.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '59.77.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '59.78.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '110.64.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '111.114.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '111.116.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '111.186.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '113.54.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '114.212.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '114.214.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '115.24.0稍等水电费水电费稍等发生的.0','255.252.0.0')) return 'DIRECT';else if (isInNet(ip, '115.154.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '115.156.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '115.158.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '116.13.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '116.56.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '118.202.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '118.228.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '118.230.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '120.94.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '120.95.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '121.48.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '121.52.160.0','255.255.224.0')) return 'DIRECT';else if (isInNet(ip, '121.192.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '121.193.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '121.194.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '121.248.0.0','255.252.0.0')) return 'DIRECT';else if (isInNet(ip, '122.204.0.0','255.252.0.0')) return 'DIRECT';else if (isInNet(ip, '125.216.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '125.218.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '125.219.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '125.220.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '125.222.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '162.105.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '166.111.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '175.185.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '175.186.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '180.84.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '180.201.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '180.208.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '183.168.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '183.170.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '183.172.0.0','255.252.0.0')) return 'DIRECT';else if (isInNet(ip, '202.4.128.0','255.255.224.0')) return 'DIRECT';else if (isInNet(ip, '202.38.2.0','255.255.254.0')) return 'DIRECT';else if (isInNet(ip, '202.38.64.0','255.255.224.0')) return 'DIRECT';else if (isInNet(ip, '202.38.96.0','255.255.224.0')) return 'DIRECT';else if (isInNet(ip, '202.38.140.0','255.255.254.0')) return 'DIRECT';else if (isInNet(ip, '202.38.192.0','255.255.192.0')) return 'DIRECT';else if (isInNet(ip, '202.112.0.0','255.255.0.0')) return 'DIRECT';else if (isInNe稍等发生的稍等飞(ip, '202.113.0.0','255.255.240.0')) return 'DIRECT';else if (isInNet(ip, '202.113.16.0','255.255.240.0')) return 'DIRECT';else if (isInNet(ip, '202.113.32.0','255.255.224.0')) return 'DIRECT';else if (isInNet(ip, '202.113.64.0','255.255.192.0')) return 'DIRECT';else if (isInNet(ip, '202.113.128.0','255.255.192.0')) return 'DIRECT';else if (isInNet(ip, '202.113.192.0','255.255.224.0')) return 'DIRECT';else if (isInNet(ip, '202.113.224.0','255.255.240.0')) return 'DIRECT';else if (isInNet(ip, '202.113.240.0','255.255.240.0')) return 'DIRECT';else if (isInNet(ip, '202.114.0.0','255.255.224.0')) return 'DIRECT';else if (isInNet(ip, '202.114.32.0','255.255.224.0')) return 'DIRECT';else if (isInNet(ip, '202.114.64.0','255.255.192.0')) return 'DIRECT';else if (isInNet(ip, '202.114.128.0','255.255.128.0')) return 'DIRECT';else if (isInNet(ip, '202.115.0.0','255.255.224.0')) return 'DIRECT';else if (isInNet(ip, '202.115.32.0','255.255.224.0')) return 'DIRECT';else if (isInNet(ip, '202.115.64.0','255.255.192.0')) return 'DIRECT';else if (isInNet(ip, '202.115.128.0','255.255.128.0')) return 'DIRECT';else if (isInNet(ip, '202.116.0.0','255.255.224.0')) return 'DIRECT';else if (isInNet(ip, '202.116.32.0','255.255.240.0')) return 'DIRECT';else if (isInNet(ip, '202.116.48.0','255.255.240.0')) return 'DIRECT';else if (isInNet(ip, '202.116.64.0','255.255.224.0')) return 'DIRECT';else if (isInNet(ip, '202.116.96.0','255.255.224.0')) return 'DIRECT';else if (isInNet(ip, '202.116.128.0','255.255.128.0')) return 'DIRECT';else if (isInNet(ip, '202.117.0.0','255.255.192.0')) return 'DIRECT';else if (isInNet(ip, '202.117.64.0','255.255.192.0')) return 'DIRECT';else if (isInNet(ip, '202.117.128.0','255.255.128.0')) return 'DIRECT';else if (isInNet(ip, '202.118.0.0','255.255.224.0')) return 'DIRECT';else if (isInNet(ip, '202.118.32.0','255.255.224.0')) return 'DIRECT';else if (isInNet(ip, '202.118.64.0','255.255.192.0')) return 'DIRECT';else if (isInNet(ip, '202.118.128.0','255.255.128.0')) return 'DIRECT';else if (isInNet(ip, '202.119.0.0','255.255.224.0')) return 'DIRECT';else if (isInNet(ip, '202.119.32.0','255.255.224.0')) return 'DIRECT';else if (isInNet(ip, '202.119.64.0','255.255.240.0')) return 'DIRECT';else if (isInNet(ip, '202.119.80.0','255.255.240.0')) return 'DIRECT';else if (isInNet(ip, '202.119.96.0','255.255.224.0')) return 'DIRECT';else if (isInNet(ip, '202.119.128.0','255.255.128.0')) return 'DIRECT';else if (isInNet(ip, '202.120.0.0','255.255.192.0')) return 'DIRECT';else if (isInNet(ip, '202.120.64.0','255.255.192.0')) return 'DIRECT';else if (isInNet(ip, '202.120.128.0','255.255.128.0')) return 'DIRECT';else if (isInNet(ip, '202.121.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '202.127.216.0','255.255.248.0')) return 'DIRECT';else if (isInNet(ip, '202.179.240.0','255.255.240.0')) return 'DIRECT'; else if (isInNet(ip, '202.192.0.0','255.248.0.0')) return 'DIRECT'; else if (isInNet(ip, '202.200.0.0','255.252.0.0')) return 'DIRECT'; else if (isInNet(ip, '202.204.0.0','255.252.0.0')) return 'DIRECT'; else if (isInNet(ip, '203.91.120.0','255.255.248.0')) return 'DIRECT'; else if (isInNet(ip, '203.114.244.0','255.255.252.0')) return 'DIRECT'; else if (isInNet(ip, '210.26.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '210.28.0.0','255.252.0.0')) return 'DIRECT';else if (isInNet(ip, '210.32.0.0','255.252.0.0')) return 'DIRECT';else if (isInNet(ip, '210.36.0.0','255.252.0.0')) return 'DIRECT';else if (isInNet(ip, '210.40.0.0','255.248.0.0')) return 'DIRECT';else if (isInNet(ip, '211.64.0.0','255.252.0.0')) return 'DIRECT';else if (isInNet(ip, '211.68.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '211.70.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '211.80.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '211.81.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '211.82.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '211.83.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '211.84.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '211.86.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '218.192.0.0','255.255.0.0')) return 'DIRECT'; else if (isInNet(ip, '218.193.0.0','255.255.0.0')) return 'DIRECT'; else if (isInNet(ip, '218.194.0.0','255.255.0.0')) return 'DIRECT'; else if (isInNet(ip, '218.195.0.0','255.255.0.0')) return 'DIRECT'; else if (isInNet(ip, '218.196.0.0','255.252.0.0')) return 'DIRECT'; else if (isInNet(ip, '219.216.0.0','255.254.0.0')) return 'DIRECT'; else if (isInNet(ip, '219.218.0.0','255.254.0.0')) return 'DIRECT'; else if (isInNet(ip, '219.220.0.0','255.255.0.0')) return 'DIRECT'; else if (isInNet(ip, '219.221.0.0','255.255.0.0')) return 'DIRECT'; else if (isInNet(ip, '219.222.0.0','255.254.0.0')) return 'DIRECT'; else if (isInNet(ip, '219.224.0.0','255.254.0.0')) return 'DIRECT'; else if (isInNet(ip, '219.226.0.0','255.255.0.0')) return 'DIRECT'; else if (isInNet(ip, '219.227.0.0','255.255.0.0')) return 'DIRECT'; else if (isInNet(ip, '219.228.0.0','255.254.0.0')) return 'DIRECT'; else if (isInNet(ip, '219.230.0.0','255.254.0.0')) return 'DIRECT'; else if (isInNet(ip, '219.242.0.0','255.254.0.0')) return 'DIRECT'; else if (isInNet(ip, '219.244.0.0','255.252.0.0')) return 'DIRECT'; else if (isInNet(ip, '222.16.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '222.18.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '222.20.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '222.22.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '222.23.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '222.24.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '222.28.0.0','255.252.0.0')) return 'DIRECT'; else if (isInNet(ip, '222.192.0.0','255.252.0.0')) return 'DIRECT'; else if (isInNet(ip, '222.196.0.0','255.254.0.0')) return 'DIRECT'; else if (isInNet(ip, '222.198.0.0','255.255.0.0')) return 'DIRECT'; else if (isInNet(ip, '222.199.0.0','255.255.0.0')) return 'DIRECT'; else if (isInNet(ip, '222.200.0.0','255.252.0.0')) return 'DIRECT'; else if (isInNet(ip, '222.204.0.0','255.254.0.0')) return 'DIRECT'; else if (isInNet(ip, '222.206.0.0','255.254.0.0')) return 'DIRECT'; else if (isInNet(ip, '125.61.160.0','255.255.224.0')) return 'DIRECT'; else if (isInNet(ip, '125.61.192.0','255.255.192.0')) return 'DIRECT'; else if (isInNet(ip, '202.38.146.0','255.255.255.0')) return 'DIRECT'; else if (isInNet(ip, '210.25.0.0','255.255.128.0')) return 'DIRECT'; else if (isInNet(ip, '210.25.128.0','255.255.192.0')) return 'DIRECT'; else if (isInNet(ip, '210.25.192.0','255.255.224.0')) return 'DIRECT'; else if (isInNet(ip, '210.25.225.0','255.255.255.0')) return 'DIRECT'; else if (isInNet(ip, '210.25.226.0','255.255.254.0')) return 'DIRECT'; else if (isInNet(ip, '210.25.228.0','255.255.252.0')) return 'DIRECT'; else if (isInNet(ip, '210.25.232.0','255.255.248.0')) return 'DIRECT'; else if (isInNet(ip, '210.25.240.0','255.255.240.0')) return 'DIRECT'; else if (isInNet(ip, '210.82.118.0','255.255.255.0')) return 'DIRECT'; else if (isInNet(ip, '27.8.0.0','255.248.0.0')) return 'DIRECT';else if (isInNet(ip, '27.36.0.0','255.252.0.0')) return 'DIRECT';else if (isInNet(ip, '27.40.0.0','255.248.0.0')) return 'DIRECT';else if (isInNet(ip, '58.16.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '58.17.0.0','255.255.128.0')) return 'DIRECT'; else if (isInNet(ip, '58.17.128.0','255.255.128.0')) return 'DIRECT'; else if (isInNet(ip, '58.18.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '58.19.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '58.20.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '58.21.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '58.22.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '58.100.0.0','255.254.0.0')) return 'DIRECT'; else if (isInNet(ip, '58.116.0.0','255.252.0.0')) return 'DIRECT'; else if (isInNet(ip, '58.128.0.0','255.248.0.0')) return 'DIRECT'; else if (isInNet(ip, '58.144.0.0','255.255.0.0')) return 'DIRECT'; else if (isInNet(ip, '58.240.0.0','255.254.0.0')) return 'DIRECT'; else if (isInNet(ip, '58.242.0.0','255.254.0.0')) return 'DIRECT'; else if (isInNet(ip, '58.244.0.0','255.254.0.0')) return 'DIRECT'; else if (isInNet(ip, '60.0.0.0','255.248.0.0')) return 'DIRECT';else if (isInNet(ip, '60.8.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '60.10.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '60.11.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '60.12.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '60.13.64.0','255.255.192.0')) return 'DIRECT'; else if (isInNet(ip, '60.13.128.0','255.255.128.0')) return 'DIRECT'; else if (isInNet(ip, '60.14.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '60.16.0.0','255.248.0.0')) return 'DIRECT';else if (isInNet(ip, '60.24.0.0','255.252.0.0')) return 'DIRECT';else if (isInNet(ip, '60.30.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '60.31.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '60.208.0.0','255.248.0.0')) return 'DIRECT'; else if (isInNet(ip, '60.216.0.0','255.254.0.0')) return 'DIRECT'; else if (isInNet(ip, '60.218.0.0','255.254.0.0')) return 'DIRECT'; else if (isInNet(ip, '60.220.0.0','255.252.0.0')) return 'DIRECT'; else if (isInNet(ip, '60.255.0.0','255.255.0.0')) return 'DIRECT'; else if (isInNet(ip, '61.52.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '61.54.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '61.55.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '61.87.192.0','255.255.192.0')) return 'DIRECT'; else if (isInNet(ip, '61.133.0.0','255.255.128.0')) return 'DIRECT'; else if (isInNet(ip, '61.134.96.0','255.255.224.0')) return 'DIRECT'; else if (isInNet(ip, '61.134.128.0','255.255.192.0')) return 'DIRECT'; else if (isInNet(ip, '61.134.192.0','255.255.192.0')) return 'DIRECT'; else if (isInNet(ip, '61.135.0.0','255.255.0.0')) return 'DIRECT'; else if (isInNet(ip, '61.136.0.0','255.255.192.0')) return 'DIRECT'; else if (isInNet(ip, '61.136.64.0','255.255.192.0')) return 'DIRECT'; else if (isInNet(ip, '61.137.128.0','255.255.128.0')) return 'DIRECT'; else if (isInNet(ip, '61.138.0.0','255.255.192.0')) return 'DIRECT'; else if (isInNet(ip, '61.138.64.0','255.255.192.0')) return 'DIRECT'; else if (isInNet(ip, '61.138.128.0','255.255.192.0')) return 'DIRECT'; else if (isInNet(ip, '61.139.128.0','255.255.192.0')) return 'DIRECT'; else if (isInNet(ip, '61.148.0.0','255.254.0.0')) return 'DIRECT'; else if (isInNet(ip, '61.156.0.0','255.255.0.0')) return 'DIRECT'; else if (isInNet(ip, '61.158.0.0','255.255.128.0')) return 'DIRECT'; else if (isInNet(ip, '61.158.128.0','255.255.128.0')) return 'DIRECT'; else if (isInNet(ip, '61.159.0.0','255.255.192.0')) return 'DIRECT'; else if (isInNet(ip, '61.161.0.0','255.255.192.0')) return 'DIRECT'; else if (isInNet(ip, '61.161.128.0','255.255.128.0')) return 'DIRECT'; else if (isInNet(ip, '61.162.0.0','255.255.0.0')) return 'DIRECT'; else if (isInNet(ip, '61.163.0.0','255.255.0.0')) return 'DIRECT'; else if (isInNet(ip, '61.167.0.0','255.255.0.0')) return 'DIRECT'; else if (isInNet(ip, '61.168.0.0','255.255.0.0')) return 'DIRECT'; else if (isInNet(ip, '61.176.0.0','255.255.0.0')) return 'DIRECT'; else if (isInNet(ip, '61.179.0.0','255.255.0.0')) return 'DIRECT'; else if (isInNet(ip, '61.180.128.0','255.255.128.0')) return 'DIRECT'; else if (isInNet(ip, '61.181.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '61.189.0.0','255.255.128.0')) return 'DIRECT'; else if (isInNet(ip, '110.6.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '110.16.0.0','255.252.0.0')) return 'DIRECT';else if (isInNet(ip, '110.52.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '110.72.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '110.228.0.0','255.252.0.0')) return 'DIRECT'; else if (isInNet(ip, '110.240.0.0','255.240.0.0')) return 'DIRECT'; else if (isInNet(ip, '111.67.192.0','255.255.240.0')) return 'DIRECT'; else if (isInNet(ip, '111.68.64.0','255.255.224.0')) return 'DIRECT'; else if (isInNet(ip, '111.85.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '111.160.0.0','255.248.0.0')) return 'DIRECT'; else if (isInNet(ip, '111.192.0.0','255.240.0.0')) return 'DIRECT'; else if (isInNet(ip, '111.208.0.0','255.252.0.0')) return 'DIRECT'; else if (isInNet(ip, '112.80.0.0','255.248.0.0')) return 'DIRECT';else if (isInNet(ip, '112.96.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '112.109.128.0','255.255.128.0')) return 'DIRECT'; else if (isInNet(ip, '112.111.0.0','255.255.0.0')) return 'DIRECT'; else if (isInNet(ip, '112.122.0.0','255.254.0.0')) return 'DIRECT'; else if (isInNet(ip, '112.132.0.0','255.255.0.0')) return 'DIRECT'; else if (isInNet(ip, '112.192.0.0','255.252.0.0')) return 'DIRECT'; else if (isInNet(ip, '112.224.0.0','255.224.0.0')) return 'DIRECT'; else if (isInNet(ip, '113.0.0.0','255.248.0.0')) return 'DIRECT';else if (isInNet(ip, '113.8.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '113.56.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '113.58.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '113.59.0.0','255.255.128.0')) return 'DIRECT'; else if (isInNet(ip, '113.194.0.0','255.254.0.0')) return 'DIRECT'; else if (isInNet(ip, '113.200.0.0','255.254.0.0')) return 'DIRECT'; else if (isInNet(ip, '113.204.0.0','255.252.0.0')) return 'DIRECT'; else if (isInNet(ip, '113.224.0.0','255.240.0.0')) return 'DIRECT'; else if (isInNet(ip, '114.110.64.0','255.255.192.0')) return 'DIRECT'; else if (isInNet(ip, '114.111.0.0','255.255.224.0')) return 'DIRECT'; else if (isInNet(ip, '114.141.128.0','255.255.192.0')) return 'DIRECT'; else if (isInNet(ip, '114.240.0.0','255.240.0.0')) return 'DIRECT'; else if (isInNet(ip, '115.46.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '115.48.0.0','255.240.0.0')) return 'DIRECT';else if (isInNet(ip, '115.85.192.0','255.255.192.0')) return 'DIRECT'; else if (isInNet(ip, '116.2.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '116.90.184.0','255.255.248.0')) return 'DIRECT'; else if (isInNet(ip, '116.95.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '116.112.0.0','255.252.0.0')) return 'DIRECT'; else if (isInNet(ip, '116.116.0.0','255.254.0.0')) return 'DIRECT'; else if (isInNet(ip, '116.193.32.0','255.255.224.0')) return 'DIRECT';else if (isInNet(ip, '116.199.128.0','255.255.224.0')) return 'DIRECT'; else if (isInNet(ip, '116.214.32.0','255.255.224.0')) return 'DIRECT'; else if (isInNet(ip, '116.255.128.0','255.255.128.0')) return 'DIRECT'; else if (isInNet(ip, '117.8.0.0','255.248.0.0')) return 'DIRECT';else if (isInNet(ip, '117.74.64.0','255.255.240.0')) return 'DIRECT'; else if (isInNet(ip, '117.106.0.0','255.254.0.0')) return 'DIRECT'; else if (isInNet(ip, '117.112.0.0','255.248.0.0')) return 'DIRECT'; else if (isInNet(ip, '117.120.64.0','255.255.192.0')) return 'DIRECT'; else if (isInNet(ip, '117.121.128.0','255.255.192.0')) return 'DIRECT'; else if (isInNet(ip, '117.122.128.0','255.255.128.0')) return 'DIRECT'; else if (isInNet(ip, '118.67.112.0','255.255.240.0')) return 'DIRECT'; else if (isInNet(ip, '118.72.0.0','255.248.0.0')) return 'DIRECT';else if (isInNet(ip, '118.80.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '118.88.32.0','255.255.224.0')) return 'DIRECT'; else if (isInNet(ip, '118.88.64.0','255.255.192.0')) return 'DIRECT'; else if (isInNet(ip, '118.212.0.0','255.255.0.0')) return 'DIRECT'; else if (isInNet(ip, '119.4.0.0','255.252.0.0')) return 'DIRECT';else if (isInNet(ip, '119.15.136.0','255.255.248.0')) return 'DIRECT'; else if (isInNet(ip, '119.18.208.0','255.255.248.0')) return 'DIRECT'; else if (isInNet(ip, '119.32.0.0','255.252.0.0')) return 'DIRECT';else if (isInNet(ip, '119.36.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '119.37.0.0','255.255.128.0')) return 'DIRECT'; else if (isInNet(ip, '119.37.128.0','255.255.192.0')) return 'DIRECT'; else if (isInNet(ip, '119.38.128.0','255.255.192.0')) return 'DIRECT'; else if (isInNet(ip, '119.39.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '119.40.128.0','255.255.128.0')) return 'DIRECT'; else if (isInNet(ip, '119.42.0.0','255.255.224.0')) return 'DIRECT'; else if (isInNet(ip, '119.48.0.0','255.248.0.0')) return 'DIRECT';else if (isInNet(ip, '119.62.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '119.108.0.0','255.254.0.0')) return 'DIRECT'; else if (isInNet(ip, '119.112.0.0','255.248.0.0')) return 'DIRECT'; else if (isInNet(ip, '119.162.0.0','255.254.0.0')) return 'DIRECT'; else if (isInNet(ip, '119.164.0.0','255.252.0.0')) return 'DIRECT'; else if (isInNet(ip, '119.176.0.0','255.240.0.0')) return 'DIRECT'; else if (isInNet(ip, '119.248.0.0','255.252.0.0')) return 'DIRECT'; else if (isInNet(ip, '120.0.0.0','255.240.0.0')) return 'DIRECT';else if (isInNet(ip, '120.31.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '120.92.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '120.132.0.0','255.255.128.0')) return 'DIRECT'; else if (isInNet(ip, '121.16.0.0','255.248.0.0')) return 'DIRECT';else if (isInNet(ip, '121.24.0.0','255.252.0.0')) return 'DIRECT';else if (isInNet(ip, '121.28.0.0','255.254.0.0')) return 'DIRECT';else if (isInNet(ip, '121.30.0.0','255.255.0.0')) return 'DIRECT';else if (isInNet(ip, '121.31.0.0','255.255.0.0')) return 'DIRECT';。