help with the date difference

 
Thread Tools Search this Thread
Homework and Emergencies Homework & Coursework Questions help with the date difference
# 1  
Old 03-07-2011
Java help with the date difference

1. The problem statement, all variables and given/known data:
The problem i have is that i probably make a few mistake here in the code but don't know what it is and i try to get the date difference but don't know where to add the days_in_month function


2. Relevant commands, code, scripts, algorithms:

Code:
int days_in_month(int month, int year);

int days_in_month(int month, int year)
{                                       /* variable declaration */
 int days;
 int yr;
 #ifdef DEBUG
 printf("debug:Enter days_in_month: month = %d, year = %d\n", month, year);
 #endif
                /* while the months are greater than 0 and less than 13 */
        while(month>0 && month<13)
        {
                /*if the month are 1,3,5,7,8,10,12*/
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
                {
                days=31;                /* initialize the days */
                #ifdef DEBUG
                printf("debug:Exit days in month: %d\n", days);
                #endif

                return days;            /* return variable*/
                }
                                /* if the months are 4,6,9,11 */
                if(month==4||month==6||month==9||month==11)
                {
                days=30;        /* initialize the day */
                #ifdef DEBUG
                printf("debug:Exit days in month: %d\n", days);
                #endif

                return days;            /* return the amount of days*/
                }
                if(month==2)            /* if the month is 2 */
                {
                yr=is_leap(year);       /* initialize year */
                if(yr == 1)             /* if the conditino is true*/
                {
                days=29;                /* initialize days */
                #ifdef DEBUG
                printf("debug:Exit days in month: %d\n", days);
                #endif

                return days;            /* return the variable */
                }
                if(yr == 0)             /* if the condition is false */
                {
                days=28;                /*initialize days */
                #ifdef DEBUG
                printf("debug:Exit days in month: %d\n", days);
                #endif

                return days;            /* return days */
                }
        }
 }
}
   
int is_leap(int year);

#include "leap.h"

int is_leap(int year)
{
  while(year != 0)                      /* While there are more input*/
  {
                                /*if the conditions are true */

  if(year%400 == 0 || (year%4 == 0 && year%100!=0))
    {
                                /*return variable*/
     return 1;
    }
                                /* if the conditions are false */
   else
    {
                                /* Return the variable */                        
     return 0;
    }
  }
}


3. The attempts at a solution (include all code and scripts):

Code:
printf(" Enter start date: ",day0, month0, year0);
printf( " Enter stop date: ", day1, month1, year1);
flag=scanf("%d %d %d %d %d %d", &day0, &month0, &year0, &day1, &month1, &year1);
while(flag!= EOF)
{
   int yeardif;
   int monthdif;
  int daydif;
 int n =0;
int monthday = 0;
int total = 0;

//Days difference due to months
 if ( month0<month1)
{ monthdif=(11- month0)+(month1);
for(int i = 11, i > month0, i--){
monthday =  days_in_month(i, year0);
total = total + monthday;
}

for(int x = month1; x > 0; x--){
 monthday = days_in_month(x, int year1);
 total = total + monthday;
}

}

else
{
for(int i = month0; i > month1; i--){
        monthday = days_in_month(i, year0);
        total = total + monthday;
}
}


//Days difference due to years
for (int i = year0, i < year1,i++){
int leap = is_leap(i);
if (leap==1)
{ n=n+1;
}
yeardif = (n*(366)+(year1-year0-n)(365));

total = yeardif + total;
}


4. Complete Name of School (University), City (State), Country, Name of Professor, and Course Number (Link to Course):
University of Hawaii at Manoa, Honolulu (HI), Oahu (Hawaii), Tep Dobry, EE (Electrical Engineering) 160 (I can't link or display any link to the course for this is my second post on this website so to find the link type in ee160 on the google search and the page is 2011 or type tep dobry ):

Note: Without school/professor/course information, you will be banned if you post here! You must complete the entire template (not just parts of it).

Last edited by fpmurphy; 03-07-2011 at 09:55 PM.. Reason: added code tags
# 2  
Old 03-08-2011
One technique I have used is to start time on March 1 of a leap year, so the future stretches out as 4 year sets, some with an extra day at the very end. When subtracting from a 4 year set the months in rotation, one never needs 29, as the most variable month is at the residue at the end after you subtract 47 months.

In UNIX, one usually just goes to UNIX time, subtracts, and then goes forward evaluating the residue, but if the app needs time in months, then it is more a question of the carry on subtract of dates, and of course the months, the leap year.

So, how close is your program -- what is a defect case?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Difference between two date

Hi, I created a script for finding the duration of a job using the start and end time of the job. But the command doesnt calculate correct value if the duration is more than 24 hours. Any help would be really good . cat test1 --- start time 03/27/15 17:41:00 03/24/15 11:58:04 03/23/15... (3 Replies)
Discussion started by: rogerben
3 Replies

2. AIX

Time Difference between date and date -u

Hi Everyone, We are having an issue with date and date -u in our AIX Systems. We have checked environment variable TZ and /etc/environment and however, we could not rectify the difference. >date Thu Mar 19 22:31:40 IST 2015 >date -u Thu Mar 19 17:01:44 GMT 2015 Any clue... (5 Replies)
Discussion started by: madhav.kunapa
5 Replies

3. Shell Programming and Scripting

Date difference

HI All , i need a bash script to find the number of days between two dates . Format YYYY-MM-DD THanks, Neil (1 Reply)
Discussion started by: nevil
1 Replies

4. Programming

Date difference

I tried the below code to find difference between two dates. It works fine if the day of the month is 2-digit number. But it fails when we have a single-digit day of month(ex:1-9). my code is as below. please help me soon. #!/usr/bin/perl -w use strict; use Time::Local; ... (2 Replies)
Discussion started by: anandrec
2 Replies

5. Shell Programming and Scripting

Difference in date

Dear all, I fancy that I'm pretty competent in ksh, but I have someone on HP-UX wanting me to script up a simple interface to handle user alterations rather than giving them high privileges to run up SAM. This is all fairly straightforward, but I'm stuck on an epoch date issue. When we have... (6 Replies)
Discussion started by: rbatte1
6 Replies

6. Shell Programming and Scripting

difference in date

Hi All! I would like to know the time difference between two dates which are in same format... $ date -r abc Thu Oct 29 09:40:37 EDT 2009 $ date Fri Oct 30 02:07:03 EDT 2009 i would like to find the diff between these two dates in hours..please help..:) Regards, Kiran (3 Replies)
Discussion started by: dddkiran
3 Replies

7. Linux

date difference

hi, i have 2 dates in the form: '20080315120030' and '20080310140030'. i.e. YYYYMMDDHHMMSS. i need a way of getting the difference between them using shell script. any thoughts? (14 Replies)
Discussion started by: muay_tb
14 Replies

8. Shell Programming and Scripting

date difference

if there are two date one is entered by user and another is system date than how can we finds day difference between these two date try to make it within 4 lines (2 Replies)
Discussion started by: piyush_movadiya
2 Replies

9. UNIX for Dummies Questions & Answers

date difference

Hi Can any buddy give mi a simple program or logic or command which will get difference between two dates ex:diff between 20051008 2005908 is 24hours 12 min 2 sec regards (1 Reply)
Discussion started by: rajuMBT
1 Replies

10. UNIX for Advanced & Expert Users

date difference

Hi...I need some help with a date script. I need to allow the user to enter the month (alpha) day (int) and year (YYYY) and count the difference in number of days since Jan 1, 1952 to the users date. I've been messing with this for about 10 hours and I think I'm just making the script worse =( ... (1 Reply)
Discussion started by: mtnbaby
1 Replies
Login or Register to Ask a Question