08.11.2014 Views

c_kitap

c_kitap

c_kitap

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

C ve Sistem Programcıları Derneği - C Ders Notları - Necati Ergin<br />

ptr->m_d = d;<br />

ptr->m_m = m;<br />

ptr->m_y = y;<br />

}<br />

/*************************************************************************/<br />

PUBLIC void set_today(Date *ptr)<br />

{<br />

time_t timer = time(NULL);<br />

struct tm *tptr = localtime(&timer);<br />

ptr->m_d = tptr->tm_mday;<br />

ptr->m_m = tptr->tm_mon + 1;<br />

ptr->m_y = tptr->tm_year + 1900;<br />

}<br />

/*************************************************************************/<br />

PUBLIC void set_random(Date *ptr)<br />

{<br />

ptr->m_y = rand() % 50 + 1960;<br />

ptr->m_m = rand() % 12 + 1;<br />

ptr->m_d = rand() % daytabs[isleap(ptr->m_y)][ptr->m_m] + 1;<br />

}<br />

/*************************************************************************/<br />

PUBLIC void display_date(const Date *ptr)<br />

{<br />

static const char *days[] = {"Pazar", "Pazartesi", "Sali", "Carsamba",<br />

"Persembe", "Cuma", "Cumartesi"};<br />

static const char *mons[] = {"", "Ocak", "Subat", "Mart", "Nisan",<br />

"Mayis", "Haziran", "Temmuz", "Agustos", "Eylul","Ekim", "Kasim",<br />

"Aralik"};<br />

printf("%02d %s %4d %s\n", ptr->m_d, mons[ptr->m_m], ptr->m_y,<br />

days[get_weekday(ptr)]);<br />

}<br />

/*************************************************************************/<br />

PUBLIC int date_cmp(const Date *p1, const Date *p2)<br />

{<br />

if (p1->m_y != p2->m_y)<br />

return p1->m_y - p2->m_y;<br />

if (p1->m_m != p2->m_m)<br />

return p1->m_m - p2->m_m;<br />

return p1->m_d - p2->m_d;<br />

}<br />

/*************************************************************************/<br />

PUBLIC void inc_date(Date *p)<br />

{<br />

*p = revdate(totaldays(p) + 1);<br />

}<br />

/*************************************************************************/<br />

PUBLIC void dec_date(Date *p)<br />

{<br />

*p = revdate(totaldays(p) - 1);<br />

}<br />

/*************************************************************************/<br />

PUBLIC Date ndays(const Date *p, int n)<br />

{<br />

return revdate(totaldays(p) + n);<br />

}<br />

/*************************************************************************/<br />

PUBLIC int get_weekday(const Date *ptr)<br />

{<br />

return (totaldays(ptr) + FACTOR) % 7;<br />

}<br />

405

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!