Make a branch to make krunner Good Enough For Aaron™.
[kdebase/uwolfer.git] / workspace / plasma / dataengines / weather / ions / formulas.cpp
blob4946f151b6a2581fda8349d3f5690b89f767d354
1 /***************************************************************************
2 * Copyright (C) 2007 by Shawn Starr <shawn.starr@rogers.com> *
3 * *
4 * This program is free software; you can redistribute it and/or modify *
5 * it under the terms of the GNU General Public License as published by *
6 * the Free Software Foundation; either version 2 of the License, or *
7 * (at your option) any later version. *
8 * *
9 * This program is distributed in the hope that it will be useful, *
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
12 * GNU General Public License for more details. *
13 * *
14 * You should have received a copy of the GNU General Public License *
15 * along with this program; if not, write to the *
16 * Free Software Foundation, Inc., *
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA *
18 ***************************************************************************/
20 #include "formulas.h"
21 #include <math.h>
23 namespace WeatherFormula
26 float celsiusToF(float temperature)
28 return (temperature * 9 / 5 + 32);
31 float fahrenheitToC(float temperature)
33 return (temperature - 32) * 5 / 9;
36 float milesToKM(float miles)
38 return (1.609344 * miles);
41 float kilometersToMI(float km)
43 return (0.621371192 * km);
46 float kilopascalsToInches(float kpa)
48 return ((0.02952997 * kpa) * 10);
51 float inchesToKilopascals(float inches)
53 return (inches * 3.386389);
56 float millibarsToInches(float millibar)
58 return (millibar * 0.0295301);
61 float millibarsToKilopascals(float millibar)
63 return (millibar * 0.10);
66 float centimetersToIN(float cm)
68 return (cm * 0.393700787);
71 float inchesToCM(float inch)
73 return (inch * 2.54);
76 float millimetersToIN(float mm)
78 return (mm * 0.0393700787);
81 float inchesToMM(float inch)
83 return (inch * 25.4);
86 float kilometersToMS(float km)
88 return (km * 0.277778);
91 float milesToMS(float miles)
93 return (miles * 0.44704);
96 float knotsToMS(float knots)
98 return (knots * 1.9438);
101 float knotsToKM(float knots)
103 return floor(knots * 1.852 + 0.5);
106 float kilometersToKT(float km)
108 return (km * 0.539956803);
111 float milesToKT(float miles)
113 return (miles * 0.868976242);
115 float knotsToMI(float knots)
117 return (knots * 1.507794);
120 int knotsToBF(float knots)
122 if (knots < 1) {
123 return 0;
124 } else if (knots >= 1 && knots < 4) {
125 return 1;
126 } else if (knots >= 4 && knots < 7) {
127 return 2;
128 } else if (knots >= 7 && knots < 11) {
129 return 3;
130 } else if (knots >= 11 && knots < 16) {
131 return 4;
132 } else if (knots >= 16 && knots < 22) {
133 return 5;
134 } else if (knots >= 22 && knots < 28) {
135 return 6;
136 } else if (knots >= 28 && knots < 34) {
137 return 7;
138 } else if (knots >= 34 && knots < 41) {
139 return 8;
140 } else if (knots >= 41 && knots < 48) {
141 return 9;
142 } else if (knots >= 48 && knots < 56) {
143 return 10;
144 } else if (knots >= 56 && knots < 64) {
145 return 11;
146 } else {
147 return 12;
151 int milesToBF(float miles)
153 return knotsToBF(miles / 1.1507794);
156 int kilometersToBF(float km)
158 return knotsToBF(km / 1.852);
161 } // namespace WeatherFormula