C#实现简单的天气预报示例代码
作者:狗狗狗狗狗乐啊 发布时间:2022-03-22 22:52:59
标签:C#,天气预报
前言
本来是打算用C#爬取天气网站上的信息,然后用正则表达过滤有用信息的,但是很淦,正则表达式太难了。无意间找到添加web引用的方式来获取天气信息,亲自测试后发现效果尚可,就记录一下。
引用部分
由于本次是控制台应用,就没有页面设计了。在VS中新建控制台程序后,右击“引用”——“添加服务引用”。
在“添加服务引用”左下角选择“高级”。
在“服务引用设置中”选择左下角的“添加web引用”。
在其中输入天气预报提取网址的url:
http://www.webxml.com.cn/WebServices/WeatherWebService.asmx
至此,引用功能就已完成。该网站提供了很多查询方法,此处我们使用的是getWeatherCityName(),方法详细内容如下:
当然,你也可以转到该url查看更多定义,选择适合你的方法。
代码实现部分
Main方法里直接引用:
WeatherWebService myweather = new WeatherWebService();
string[] myweathers = myweather.getWeatherbyCityName("郑州");
for (int i = 0; i < myweathers.Length;i++ )
{ Console.WriteLine(myweathers[i]); }
传入的值尽量不要带“市”,返回的数组循环输出后结果如下:
其中各项所代表的含义可以查看上方官网的说明,这里为了让布局好看一点,让重点突出一点,可以使用到控制台的字体颜色转换语句:
Console.ForegroundColor = ConsoleColor.颜色;
完善后的代码如下:
WeatherWebService myweather = new WeatherWebService();
string[] myweathers = myweather.getWeatherbyCityName("郑州");
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("今日天气:\n更新时间:" + myweathers[4]);
Console.WriteLine("当前选择地区:" + myweathers[0] + "_" + myweathers[1] + "\n");
Console.ForegroundColor = ConsoleColor.White;
Console.Write(myweathers[6] + "(今日) 风向&风力:" + myweathers[7]);
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine(" 气温:" + myweathers[5] + "\n");
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("当前实况(数据每2.5小时左右自动更新一次):\n" + myweathers[10] + myweathers[11]);
Console.Write(myweathers[13] + "(明天) 风向&风力:" + myweathers[14]);
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine(" 气温:" + myweathers[12] + "\n");
Console.ForegroundColor = ConsoleColor.White;
Console.Write(myweathers[18] + "(后天) 风向&风力:" + myweathers[19]);
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine(" 气温:" + myweathers[17] + "\n");
Console.ForegroundColor = ConsoleColor.White;
当然,你也可以在后面加一个判断,输入1的话可以查询其他城市,然后获取输入的值,传入方法中。如果感兴趣的话可以看一下源码,这里就不再过多展示。
运行效果
结语
程序很小,仅作分享。不足之处,望见谅。
项目源码:请别抢我闪刀姬/天气预报
来源:https://blog.csdn.net/weixin_44122062/article/details/105251106
0
投稿
猜你喜欢
- Java身份证验证方法实例详解身份证号码验证 1、号码的结构 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右
- 本文实例讲述了C#控制图像旋转和翻转的方法。分享给大家供大家参考。具体实现方法如下:using System;using System.Co
- 前言:Java异常处理的五个关键字:try、catch、finally、throw、throws抛出异常throw在编写程序时,我们必须要考
- Java虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java
- 使用ManagedWifi查看当前Wifi信号并选择wifiusing System;using System.Collections.Ge
- 本文适合有 Java 基础的人群作者:DJL-LankingHelloGitHub 推出的《讲解开源项目》系列。有幸邀请到了亚马逊 + Ap
- 一.WebSocket简单介绍WebSocket protocol 是HTML5一种新的协议。它实现了浏览器与服务器全双工通信(full-d
- 概念二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:1、若它的左子树不为空,则左子树上所有节点的值都小于根结点的值。
- android中提供了4中动画: AlphaAnimation 透明度动画效果 ScaleAnimation 缩放动画效果 Translat
- 最近在做一个移动端HTML5的应用,使用到了上传功能,起初使用传统的上传方式上传手机拍照的照片,由于手机拍照出来的照片一般都是好几MB,所以
- 1.一段简单的代码首先来一段代码,这个是单例模式,可能有的人不知道什么是单例模式,我就简单说一下单例模式是指一个类有且只有一种对象实例。这里
- 使用@Value取值出现的问题在springBoot项目中我们一般会把一些路径或者资源写在配置文件中,方便管理。但是取得时候有可能会出现一些
- 首先要解析string类型的xml必须先要将其转化成dom格式,然后再进行解析取值,如下是解析代码示例:package com.compan
- 嗯,就是BASE64,不用多想,本来计划是要跟上一篇字符串压缩一起写的,用来实现将一个文件可以用json或者text等方式进行接口之间的传输
- 一、this 关键字的使用1. 概述this是什么?在Java中,this关键字比较难理解,它的作用和其词义很接近,表示&ldquo
- 我想,对于各位使用面向对象编程语言的程序员来说,“接口”这个名词一定不陌生,但是不知各位有没有这样的疑惑:接口有什么用途?它和抽象类有什么区
- Java的在还没有发现新写法之前时,我一直是这么初始化List跟Map://初始化List List&l
- 在ios7中,苹果的原生态应用几乎都能够通过向右滑动来返回到前一个页面,这样可以避免用户在单手操作时用大拇指去点击那个遥远的返回键(ipho
- 1.首先什么是JNI呢?JNI——(Java Native Interface),他是java平台的特性,不是安卓系统提供的。他定义了一些J
- 打包与运行在项目开发完成之后,可以直接用IDEA将其打包成JAR包运行,也可以打包成WAR包运行以便在多服务器、多配置环境下运行。双击cle