Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <time.h>
- #define TIME_YEAR_OFFSET 1900
- #define PST_OFFSET -8
- #define EST_OFFSET -5
- #define AUS_OFFSET 9
- #define FULL_DAYS_HOURS 24
- int pstHour(int dubHour){
- if ( dubHour < -(PST_OFFSET) ){
- return dubHour + (FULL_DAYS_HOURS + PST_OFFSET);
- }
- return dubHour + PST_OFFSET;
- }
- int estHour(int dubHour){
- if ( dubHour < -(EST_OFFSET) ){
- return dubHour + (FULL_DAYS_HOURS + EST_OFFSET);
- }
- return dubHour + EST_OFFSET;
- }
- int ausHour(int dubHour){
- if ( dubHour + AUS_OFFSET > FULL_DAYS_HOURS) {
- return dubHour + (AUS_OFFSET - FULL_DAYS_HOURS);
- }
- return dubHour + AUS_OFFSET;
- }
- void apFromHour(int hour, int * outHour, char **outAP){
- *outHour = hour % 12;
- if(*outHour == 0){
- *outHour = 12;
- }
- if(hour > 11){
- *outAP = "PM";
- } else {
- *outAP = "AM";
- }
- }
- int main() {
- time_t doctor = time(NULL);
- struct tm * tardis = localtime(&doctor);
- int year = tardis->tm_year + TIME_YEAR_OFFSET;
- int month = tardis->tm_mon + 1;
- int rawHour = tardis->tm_hour;
- int dubHour;
- char * dubAP;
- apFromHour(rawHour, &dubHour, &dubAP);
- int sf24Hour = pstHour(rawHour);
- int sf12Hour;
- char * sfAP;
- apFromHour(sf24Hour, &sf12Hour, &sfAP);
- int ny24Hour = estHour(rawHour);
- int ny12Hour;
- char * nyAP;
- apFromHour(ny24Hour, &ny12Hour, &nyAP);
- int aus24Hour = ausHour(rawHour);
- int aus12Hour;
- char * ausAP;
- apFromHour(aus24Hour, &aus12Hour, &ausAP);
- char minuteString[3];
- minuteString[2] = '\0';
- int rawMin = tardis->tm_min;
- if(rawMin < 10){
- minuteString[0] = '0';
- minuteString[1] = '0' + rawMin;
- } else {
- minuteString[0] = '0' + (rawMin / 10);
- minuteString[1] = '0' + (rawMin % 10);
- }
- printf("================================\n");
- printf(" << %d-%d-%d\t%d:%s %s >>\n", year, month, tardis->tm_mday, tardis->tm_hour, minuteString, tardis->tm_zone);
- printf("================================\n");
- printf("-> Melbourne: %d:%s %s\n", aus12Hour, minuteString, ausAP);
- printf("-> Dublin: %d:%s %s\n", dubHour, minuteString, dubAP);
- printf("-> New York: %d:%s %s\n", ny12Hour, minuteString, nyAP);
- printf("-> San Francisco: %d:%s %s\n", sf12Hour, minuteString, sfAP);
- return 0;
- }
Add Comment
Please, Sign In to add comment