易语言读取天气预报、万年历源码(图)

20141217170347184718

下面是天气预报源码

.版本 2
.支持库 RegEx
.支持库 internet
.支持库 iconv
.支持库 spec
.支持库 CnCalendar

.程序集 窗口程序集_窗口1

.子程序 _窗口1_创建完毕

天气_时间 = 0
读取天气js源码 ()
_图形按钮1_被单击 ()

.子程序 读取天气js源码, , , 这个API最多可读取5天的天气
.局部变量 temp, 文本型
.局部变量 正则表达式, 正则表达式
.局部变量 搜索结果, 搜索结果, , “0”
.局部变量 i, 整数型
.局部变量 文本, 文本型
.局部变量 晚上, 文本型
.局部变量 网址, 文本型
.局部变量 数据, 字节集

网址 = “http://php.weather.sina.com.cn/iframe/index/w_cl.php?code=js&day=” + 到文本 (天气天数 - 1) + “&city=&dfc=1&charset=utf-8”
输出调试文本 (网址)

数据 = HTTP读文件 (网址)
数据 = 编码转换 (数据, #编码_UTF_8, #编码_GBK, )
文本 = 到文本 (数据)
正则表达式.创建 (“'(.*?)’”, )
搜索结果 = 正则表达式.搜索全部 (文本)
调试输出 (文本)
.计次循环首 (取数组成员数 (搜索结果), i)
temp = 搜索结果 [i].取子匹配文本 (文本, 1, )
.如果 (i ≠ 1)
天气 = 天气 + temp + “,”
.否则
城市 = temp
.如果结束

.计次循环尾 ()
.子程序 处理天气, , , 3天内的天气处理 写死
.参数 参数, 文本型
.局部变量 temp, 文本型, , “0”

temp = 分割文本 (参数, “,”, 30)
调试输出 (temp)

.如果真 (取数组成员数 (temp) < 10)
信息框 (“天气数据出错,放弃处理。”, #错误图标, , )
返回 ()
.如果真结束

.判断开始 (天气_时间 = 0)
标签1.标题 = 城市 + “ 今天” + #换行符 + _当前日期 (增减时间 (取现行时间 (), 5, 天气_时间), 2)
.判断开始 (temp [1] = “阴”)
图片框_白天.图片 = #阴天
.判断 (temp [1] = “多云”)
图片框_白天.图片 = #多云1
.判断 (temp [1] = “刮风”)
图片框_白天.图片 = #刮风
.判断 (temp [1] = “雷阵雨”)
图片框_白天.图片 = #雷阵雨1
.判断 (temp [1] = “零散阵雨”)
图片框_白天.图片 = #零散阵雨
.判断 (temp [1] = “晴”)
图片框_白天.图片 = #晴1
.判断 (temp [1] = “雾”)
图片框_白天.图片 = #雾
.判断 (temp [1] = “阵雨”)
图片框_白天.图片 = #阵雨
.判断 (temp [1] = “雪”)
图片框_白天.图片 = #雪
.判断 (temp [1] = “雨雪混合”)
图片框_白天.图片 = #雨雪混合
.判断 (寻找文本 (temp [1], “雨”, , 假) ≠ -1)
图片框_白天.图片 = #雨
.默认

.判断结束

.判断开始 (temp [2] = “阴”)
图片框_夜晚.图片 = #阴天
.判断 (temp [2] = “多云”)
图片框_夜晚.图片 = #多云2
.判断 (temp [2] = “刮风”)
图片框_夜晚.图片 = #刮风
.判断 (temp [2] = “雷阵雨”)
图片框_夜晚.图片 = #雷阵雨2
.判断 (temp [2] = “零散阵雨”)
图片框_夜晚.图片 = #零散阵雨
.判断 (temp [2] = “晴”)
图片框_夜晚.图片 = #晴2
.判断 (temp [2] = “雾”)
图片框_夜晚.图片 = #雾
.判断 (temp [2] = “阵雨”)
图片框_夜晚.图片 = #阵雨
.判断 (temp [2] = “雪”)
图片框_夜晚.图片 = #雪
.判断 (temp [2] = “雨雪混合”)
图片框_夜晚.图片 = #雨雪混合
.判断 (寻找文本 (temp [2], “雨”, , 假) ≠ -1)
图片框_夜晚.图片 = #雨
.默认

.判断结束

编辑框1.内容 = temp [5] + “℃-” + temp [6] + “℃”

.如果 (temp [7] ≠ temp [8])
标签3.标题 = temp [9] + “ ” + temp [7] + “级” + #换行符 + temp [10] + “ ” + temp [8] + “级”
.否则
标签3.标题 = temp [9] + “ ” + temp [7] + “级”
.如果结束
天气_时间 = 天气_时间 + 1
.判断 (天气_时间 = 1)
标签1.标题 = 城市 + #换行符 + _当前日期 (增减时间 (取现行时间 (), 5, 天气_时间), 2)
.判断开始 (temp [11] = “阴”)
图片框_白天.图片 = #阴天
.判断 (temp [11] = “多云”)
图片框_白天.图片 = #多云1
.判断 (temp [11] = “刮风”)
图片框_白天.图片 = #刮风
.判断 (temp [11] = “雷阵雨”)
图片框_白天.图片 = #雷阵雨1
.判断 (temp [11] = “零散阵雨”)
图片框_白天.图片 = #零散阵雨
.判断 (temp [11] = “晴”)
图片框_白天.图片 = #晴1
.判断 (temp [11] = “雾”)
图片框_白天.图片 = #雾
.判断 (temp [11] = “阵雨”)
图片框_白天.图片 = #阵雨
.判断 (temp [11] = “雪”)
图片框_白天.图片 = #雪
.判断 (temp [11] = “雨雪混合”)
图片框_白天.图片 = #雨雪混合
.判断 (寻找文本 (temp [11], “雨”, , 假) ≠ -1)
图片框_白天.图片 = #雨
.默认

.判断结束

.判断开始 (temp [12] = “阴”)
图片框_夜晚.图片 = #阴天
.判断 (temp [12] = “多云”)
图片框_夜晚.图片 = #多云2
.判断 (temp [12] = “刮风”)
图片框_夜晚.图片 = #刮风
.判断 (temp [12] = “雷阵雨”)
图片框_夜晚.图片 = #雷阵雨2
.判断 (temp [12] = “零散阵雨”)
图片框_夜晚.图片 = #零散阵雨
.判断 (temp [12] = “晴”)
图片框_夜晚.图片 = #晴2
.判断 (temp [12] = “雾”)
图片框_夜晚.图片 = #雾
.判断 (temp [12] = “阵雨”)
图片框_夜晚.图片 = #阵雨
.判断 (temp [12] = “雪”)
图片框_夜晚.图片 = #雪
.判断 (temp [12] = “雨雪混合”)
图片框_夜晚.图片 = #雨雪混合
.判断 (寻找文本 (temp [12], “雨”, , 假) ≠ -1)
图片框_夜晚.图片 = #雨
.默认

.判断结束

编辑框1.内容 = temp [15] + “℃-” + temp [16] + “℃”

.如果 (temp [17] ≠ temp [18])
标签3.标题 = temp [19] + “ ” + temp [17] + “级” + #换行符 + temp [20] + “ ” + temp [18] + “级”
.否则
标签3.标题 = temp [19] + “ ” + temp [17] + “级”
.如果结束
天气_时间 = 天气_时间 + 1
.判断 (天气_时间 = 2)
标签1.标题 = 城市 + #换行符 + _当前日期 (增减时间 (取现行时间 (), 5, 天气_时间), 2)
.判断开始 (temp [21] = “阴”)
图片框_白天.图片 = #阴天
.判断 (temp [21] = “多云”)
图片框_白天.图片 = #多云1
.判断 (temp [21] = “刮风”)
图片框_白天.图片 = #刮风
.判断 (temp [21] = “雷阵雨”)
图片框_白天.图片 = #雷阵雨1
.判断 (temp [21] = “零散阵雨”)
图片框_白天.图片 = #零散阵雨
.判断 (temp [21] = “晴”)
图片框_白天.图片 = #晴1
.判断 (temp [21] = “雾”)
图片框_白天.图片 = #雾
.判断 (temp [21] = “阵雨”)
图片框_白天.图片 = #阵雨
.判断 (temp [21] = “雪”)
图片框_白天.图片 = #雪
.判断 (temp [21] = “雨雪混合”)
图片框_白天.图片 = #雨雪混合
.判断 (寻找文本 (temp [21], “雨”, , 假) ≠ -1)
图片框_白天.图片 = #雨
.默认

.判断结束

.判断开始 (temp [22] = “阴”)
图片框_夜晚.图片 = #阴天
.判断 (temp [22] = “多云”)
图片框_夜晚.图片 = #多云2
.判断 (temp [22] = “刮风”)
图片框_夜晚.图片 = #刮风
.判断 (temp [22] = “雷阵雨”)
图片框_夜晚.图片 = #雷阵雨2
.判断 (temp [22] = “零散阵雨”)
图片框_夜晚.图片 = #零散阵雨
.判断 (temp [22] = “晴”)
图片框_夜晚.图片 = #晴2
.判断 (temp [22] = “雾”)
图片框_夜晚.图片 = #雾
.判断 (temp [22] = “阵雨”)
图片框_夜晚.图片 = #阵雨
.判断 (temp [22] = “雪”)
图片框_夜晚.图片 = #雪
.判断 (temp [22] = “雨雪混合”)
图片框_夜晚.图片 = #雨雪混合
.判断 (寻找文本 (temp [22], “雨”, , 假) ≠ -1)
图片框_夜晚.图片 = #雨
.默认

.判断结束

编辑框1.内容 = temp [25] + “℃-” + temp [26] + “℃”

.如果 (temp [27] ≠ temp [28])
标签3.标题 = temp [29] + “ ” + temp [27] + “级” + #换行符 + temp [30] + “ ” + temp [28] + “级”
.否则
标签3.标题 = temp [29] + “ ” + temp [27] + “级”
.如果结束
天气_时间 = 0
.默认

.判断结束
.子程序 _图形按钮1_被单击

处理天气1 (天气, 天气_时间)
天气_时间 = 天气_时间 + 1
.如果真 (天气_时间 = 天气天数)
天气_时间 = 0
.如果真结束
.子程序 处理天气1, , , 0.今天,1.明天,以此类推;可读取N天以内的天气信息,具体还是要看你的API吧
.参数 参数, 文本型
.参数 天, 整数型
.局部变量 temp, 文本型, , “0”

temp = 分割文本 (参数, “,”, )

.如果真 (天 × 10 + 5 ≥ 取数组成员数 (temp))
信息框 (“没有更多的天气预报信息!”, #信息图标, , )
返回 ()

.如果真结束
.判断开始 (天 = 0)
标签1.标题 = 城市 + “ 今天” + #换行符 + _当前日期 (增减时间 (取现行时间 (), 5, 天), 2)
.判断 (天 = 1)
标签1.标题 = 城市 + “ 明天” + #换行符 + _当前日期 (增减时间 (取现行时间 (), 5, 天), 2)
.判断 (天 = 2)
标签1.标题 = 城市 + “ 后天” + #换行符 + _当前日期 (增减时间 (取现行时间 (), 5, 天), 2)
.默认
标签1.标题 = 城市 + #换行符 + _当前日期 (增减时间 (取现行时间 (), 5, 天), 2)
.判断结束

.判断开始 (temp [天 × 10 + 1] = “阴”)
图片框_白天.图片 = #阴天
.判断 (temp [天 × 10 + 1] = “多云”)
图片框_白天.图片 = #多云1
.判断 (temp [天 × 10 + 1] = “刮风”)
图片框_白天.图片 = #刮风
.判断 (temp [天 × 10 + 1] = “雷阵雨” 或 temp [天 × 10 + 1] = “雷雨”)
图片框_白天.图片 = #雷阵雨1
.判断 (temp [天 × 10 + 1] = “零散阵雨”)
图片框_白天.图片 = #零散阵雨
.判断 (temp [天 × 10 + 1] = “晴”)
图片框_白天.图片 = #晴1
.判断 (temp [天 × 10 + 1] = “雾”)
图片框_白天.图片 = #雾
.判断 (temp [天 × 10 + 1] = “阵雨”)
图片框_白天.图片 = #阵雨
.判断 (temp [天 × 10 + 1] = “雪”)
图片框_白天.图片 = #雪
.判断 (temp [天 × 10 + 1] = “雨雪混合”)
图片框_白天.图片 = #雨雪混合
.判断 (寻找文本 (temp [天 × 10 + 1], “雨”, , 假) ≠ -1)
图片框_白天.图片 = #雨
.默认
图片框_白天.图片 = #晴1
.判断结束

.判断开始 (temp [天 × 10 + 2] = “阴”)
图片框_夜晚.图片 = #阴天
.判断 (temp [天 × 10 + 2] = “多云”)
图片框_夜晚.图片 = #多云2
.判断 (temp [天 × 10 + 2] = “刮风”)
图片框_夜晚.图片 = #刮风
.判断 (temp [天 × 10 + 2] = “雷阵雨” 或 temp [天 × 10 + 2] = “雷雨”)
图片框_夜晚.图片 = #雷阵雨2
.判断 (temp [天 × 10 + 2] = “零散阵雨”)
图片框_夜晚.图片 = #零散阵雨
.判断 (temp [天 × 10 + 2] = “晴”)
图片框_夜晚.图片 = #晴2
.判断 (temp [天 × 10 + 2] = “雾”)
图片框_夜晚.图片 = #雾
.判断 (temp [天 × 10 + 2] = “阵雨”)
图片框_夜晚.图片 = #阵雨
.判断 (temp [天 × 10 + 2] = “雪”)
图片框_夜晚.图片 = #雪
.判断 (temp [天 × 10 + 2] = “雨雪混合”)
图片框_夜晚.图片 = #雨雪混合
.判断 (寻找文本 (temp [天 × 10 + 2], “雨”, , 假) ≠ -1)
图片框_夜晚.图片 = #雨
.默认
图片框_白天.图片 = #晴1
.判断结束

编辑框1.内容 = temp [天 × 10 + 5] + “℃-” + temp [天 × 10 + 6] + “℃”

.如果 (temp [天 × 10 + 7] ≠ temp [天 × 10 + 8])
标签3.标题 = temp [天 × 10 + 9] + “ ” + temp [天 × 10 + 7] + “级” + #换行符 + temp [天 × 10 + 10] + “ ” + temp [天 × 10 + 8] + “级”
.否则
标签3.标题 = temp [天 × 10 + 9] + “ ” + temp [天 × 10 + 7] + “级”
.如果结束

.子程序 _当前日期, 文本型, , 1.显示日期时间星期 2.显示日期星期 3.只显示时间  4.只显示年月日 5.201411 6.201401201010默认1
.参数 时间, 日期时间型
.参数 格式, 整数型, , 1.显示日期时间星期 2.显示日期星期 3.只显示时间
.局部变量 时, 文本型
.局部变量 分, 文本型
.局部变量 秒, 文本型
.局部变量 d
.局部变量 星期, 文本型
.局部变量 date, 文本型
.局部变量 年, 文本型
.局部变量 月, 文本型
.局部变量 日, 文本型

时 = 到文本 (取小时 (时间))
分 = 到文本 (取分钟 (时间))
秒 = 到文本 (取秒 (时间))
‘ %Y年(%S)%M%D %y-%m-%d
d = 取星期几 (时间)
.判断开始 (d = 1)
星期 = “星期日”
.判断 (d = 2)
星期 = “星期一”
.判断 (d = 3)
星期 = “星期二”
.判断 (d = 4)
星期 = “星期三”
.判断 (d = 5)
星期 = “星期四”
.判断 (d = 6)
星期 = “星期五”
.默认
星期 = “星期六”
.判断结束

.判断开始 (格式 = 1)
date = 格式化日期 (时间, “%y-%m-%d”) + “ ” + 星期 + “ ” + 时 + “:” + 分 + “:” + 秒
.判断 (格式 = 2)
date = 格式化日期 (时间, “%y-%m-%d”) + “ ” + 星期
.判断 (格式 = 3)
date = 时 + “:” + 分 + “:” + 秒
.判断 (格式 = 4)
date = 格式化日期 (时间, “%y-%m-%d”)
.判断 (格式 = 5)
date = 格式化日期 (时间, “%y%m%d”)
.判断 (格式 = 6)
date = 格式化日期 (时间, “%y%m%d”) + 时 + 分
.默认
date = 格式化日期 (时间, “%y年%m月%d日”) + “ ” + 星期 + “ ” + 时 + “:” + 分 + “:” + 秒
.判断结束
返回 (date)


以下是万年历源码:

.版本 2
.支持库 eGrid
.支持库 CnCalendar
.支持库 iext5

.程序集 窗口程序集_窗口2

.子程序 _窗口2_创建完毕

SendMessage (日期框1.取窗口句柄 (), 4101, 0, “  yyyy-MM”)
处理月历 (取年份 (日期框1.今天), 取月份 (日期框1.今天))

.子程序 处理月历
.参数 年, 整数型
.参数 月, 整数型
.局部变量 天数, 整数型
.局部变量 a, 整数型
.局部变量 i, 整数型
.局部变量 行, 整数型
.局部变量 列, 整数型

高级表格_天气.清空数据 ()
天数 = 取某月天数 (年, 月)
高级表格_天气.置数据 (0, 0, 1, “日”)
.计次循环首 (6, i)
高级表格_天气.置数据 (0, i, 1, 数值到大写 (i, 真))
.计次循环尾 ()
高级表格_天气.置对齐方式 (0, 0, 高级表格_天气.行数, 高级表格_天气.列数, 2)
高级表格_天气.置单元格背景颜色 (0, 0, 0, 高级表格_天气.列数, 取颜色值 (255, 165, 0))
高级表格_天气.置单元格文字颜色 (0, 0, 0, 高级表格_天气.列数, #白色)
高级表格_天气.置字体属性 (0, 0, 0, 高级表格_天气.列数, 1)

a = 取星期几 (到时间 (到文本 (年) + “-” + 到文本 (月) + “-1”))
行 = 1
列 = a - 1

.计次循环首 (天数, i)
高级表格_天气.置数据 (行, 列, 1, 到文本 (i))
列 = 列 + 1
.如果真 (列 ≥ 7)
列 = 0
行 = 行 + 1
.如果真结束
.如果真 (到文本 (年) + “-” + 到文本 (月) + “-” + 到文本 (i + 1) = _当前日期 (取现行时间 (), 4))
高级表格_天气.置单元格文字颜色 (行, 列, 行, 列, #红色)
高级表格_天气.置字体属性 (行, 列, 行, 列, 1)
高级表格_天气.置单元格背景颜色 (行, 列, 行, 列, #黄色)
.如果真结束

.计次循环尾 ()
高级表格_天气.置单元格文字颜色 (1, 0, 高级表格_天气.行数, 0, #红色)
高级表格_天气.置单元格文字颜色 (1, 6, 高级表格_天气.行数, 6, #红色)
编辑框_今天.内容 = “今天:” + _当前日期 (取现行时间 (), 2)
全_月份 = 月
.子程序 跳转到今天

日期框1.今天 = 取现行时间 ()
处理月历 (取年份 (日期框1.今天), 取月份 (日期框1.今天))
.子程序 高级表格查找文本
.参数 文本, 文本型
.局部变量 a, 整数型
.局部变量 b, 整数型
.局部变量 c, 文本型

.计次循环首 (高级表格_天气.行数 - 1, a)
.计次循环首 (高级表格_天气.列数, b)
c = 高级表格_天气.取数据 (a, b - 1)
.如果真 (c ≠ “”)
.如果真 (c = 文本)
高级表格_天气.置光标 (a, b - 1)
跳出循环 ()
.如果真结束

.如果真结束

.计次循环尾 ()
.计次循环尾 ()

.子程序 _高级表格_天气_光标位置改变

.判断开始 (高级表格_天气.取光标行号 () = 1)
.如果真 (高级表格_天气.取光标列号 () < 6)
.如果真 (高级表格_天气.取数据 (高级表格_天气.取光标行号 (), 高级表格_天气.取光标列号 ()) = “”)
_超级按钮_上月_被单击 ()

.如果真结束

.如果真结束

.判断 (高级表格_天气.取光标行号 () = 5)
.如果真 (高级表格_天气.取光标列号 () < 7)
.如果真 (高级表格_天气.取数据 (高级表格_天气.取光标行号 (), 高级表格_天气.取光标列号 ()) = “”)
_超级按钮_下月_被单击 ()

.如果真结束

.如果真结束

.默认

.判断结束
.子程序 _编辑框_今天_鼠标左键被放开, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型

跳转到今天 ()
.子程序 _日期框1_选择日期被改变

.如果 (全_月份 ≠ 取月份 (日期框1.今天))
处理月历 (取年份 (日期框1.今天), 取月份 (日期框1.今天))
.否则
高级表格查找文本 (到文本 (取日 (日期框1.今天)))
.如果结束

.子程序 _高级表格_天气_鼠标左键被放开, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.局部变量 day, 文本型
.局部变量 节气, 文本型
.局部变量 tip, 文本型
.局部变量 农历日期, 日期时间型
.局部变量 年1, 整数型
.局部变量 月1, 整数型
.局部变量 日1, 整数型
.局部变量 闰月, 逻辑型
.局部变量 i, 整数型

.如果真 (高级表格_天气.取光标行号 () ≠ 0 且 高级表格_天气.取光标行号 () ≠ -1)
day = 高级表格_天气.取数据 (高级表格_天气.取光标行号 (), 高级表格_天气.取光标列号 ())
.如果真 (到整数 (day) ≠ 0)
tip = 格式化日期 (到时间 (到文本 (取年份 (日期框1.今天)) + “-” + 到文本 (取月份 (日期框1.今天)) + “-” + day), “%Y年【%S】 %M%D”)
公历转农历 (到时间 (到文本 (取年份 (日期框1.今天)) + “-” + 到文本 (取月份 (日期框1.今天)) + “-” + day), 年1, 月1, 日1, 闰月)

节气 = 取农历节气 (年1, 月1, 日1, 闰月, )
输出调试文本 (年1)
输出调试文本 (月1)
输出调试文本 (日1)
输出调试文本 (闰月)
.如果 (节气 ≠ “”)
tip = “<H3>” + _当前日期 (到时间 (到文本 (取年份 (日期框1.今天)) + “-” + 到文本 (取月份 (日期框1.今天)) + “-” + day), 2) + “</H3>” + #换行符 + #换行符 + “<H4>” + tip + “</H4>  <H5>” + 节气 + “</H5>”
.否则
tip = “<H3>” + _当前日期 (到时间 (到文本 (取年份 (日期框1.今天)) + “-” + 到文本 (取月份 (日期框1.今天)) + “-” + day), 2) + “</H3>” + #换行符 + #换行符 + “<H4>” + tip + “</H4>”
.如果结束
气球提示框1.自动停留时间 = 3000
气球提示框1.弹出提示框 (取鼠标水平位置 (), 取鼠标垂直位置 () - 14, tip, -1, )
.如果真结束

.如果真结束
.子程序 _超级按钮_上月_被单击

日期框1.今天 = 增减时间 (日期框1.今天, 3, -1)
处理月历 (取年份 (日期框1.今天), 取月份 (日期框1.今天))
.子程序 _超级按钮_下月_被单击

日期框1.今天 = 增减时间 (日期框1.今天, 3, 1)
处理月历 (取年份 (日期框1.今天), 取月份 (日期框1.今天))

 

Leave a Comment