Skip to content

Instantly share code, notes, and snippets.

@AlanCowap
Forked from udacityandroid/Utility.java
Last active August 29, 2015 14:16
Show Gist options
  • Save AlanCowap/55dbf561a30086339c9c to your computer and use it in GitHub Desktop.
Save AlanCowap/55dbf561a30086339c9c to your computer and use it in GitHub Desktop.
<!-- Strings for formatting weather-related data -->
<!-- Temperature format [CHAR LIMIT=5] -->
<string name="format_temperature"><xliff:g id="temp">%1.0f</xliff:g>\u00B0</string>
<!-- Windspeed formats -->
<!-- Wind in mph [CHAR LIMIT=25] -->
<string name="format_wind_mph">
Wind: <xliff:g id="speed">%1$1.0f</xliff:g> mph <xliff:g id="direction">%2$s</xliff:g>
</string>
<!-- Wind in kph [CHAR LIMIT=25] -->
<string name="format_wind_kmh">
Wind: <xliff:g id="speed">%1$1.0f</xliff:g> km/h <xliff:g id="direction">%2$s</xliff:g>
</string>
<!-- Pressure format CHAR LIMIT=25] -->
<string name="format_pressure">Pressure: <xliff:g id="pressure">%1.0f</xliff:g> hPa</string>
<!-- Humidity format CHAR LIMIT=25]-->
<string name="format_humidity">Humidity: <xliff:g id="humidity">%1.0f</xliff:g> %%</string>
public static String getFormattedWind(Context context, float windSpeed, float degrees) {
int windFormat;
if (Utility.isMetric(context)) {
windFormat = R.string.format_wind_kmh;
} else {
windFormat = R.string.format_wind_mph;
windSpeed = .621371192237334f * windSpeed;
}
// From wind direction in degrees, determine compass direction as a string (e.g NW)
// You know what's fun, writing really long if/else statements with tons of possible
// conditions. Seriously, try it!
String direction = "Unknown";
if (degrees < 22.5 && degrees >= 0.0) {
direction = "N";
} else if (degrees < 67.5) {
direction = "NE";
} else if (degrees < 112.5) {
direction = "E";
} else if (degrees < 157.5) {
direction = "SE";
} else if (degrees < 202.5) {
direction = "S";
} else if (degrees < 247.5) {
direction = "SW";
} else if (degrees < 292.5) {
direction = "W";
} else if (degrees < 337.5) {
direction = "NW";
} else if (degrees <=360.0 ){
direction = "N";
}
return String.format(context.getString(windFormat), windSpeed, direction);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment