08.11.2014 Views

c_kitap

c_kitap

c_kitap

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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

if (d < 1 || d > daytabs[isleap(y)][m])<br />

return false;<br />

return true;<br />

}<br />

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

PRIVATE int totaldays(const Date *ptr)<br />

{<br />

int sum = 0;<br />

int k;<br />

for (k = YEAR_BASE; k < ptr->m_y; ++k)<br />

sum += 365 + isleap(k);<br />

return sum + get_yearday(ptr);<br />

}<br />

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

PRIVATE Date revdate(int totaldays)<br />

{<br />

Date ret_val;<br />

int val;<br />

int index;<br />

ret_val.m_y = YEAR_BASE;<br />

while (totaldays > (val = isleap(ret_val.m_y) + 365)) {<br />

totaldays -= val;<br />

ret_val.m_y++;<br />

}<br />

ret_val.m_m = 1;<br />

index = isleap(ret_val.m_y);<br />

while (totaldays > daytabs[index][ret_val.m_m])<br />

totaldays -= daytabs[index][ret_val.m_m++];<br />

ret_val.m_d = totaldays;<br />

return ret_val;<br />

}<br />

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

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

{<br />

int sum = ptr->m_d;<br />

int k;<br />

int index = isleap(ptr->m_y);<br />

for (k = 1; k < ptr->m_m; ++k)<br />

sum += daytabs[index][k];<br />

return sum;<br />

}<br />

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

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

{<br />

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

}<br />

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

PUBLIC bool isleap(int y)<br />

{<br />

return y % 4 == 0 && y % 100 != 0 || y % 400 == 0;<br />

}<br />

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

PUBLIC void set_date(Date *ptr, int d, int m, int y)<br />

{<br />

assert(check_date(d, m, y));<br />

404

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

Saved successfully!

Ooh no, something went wrong!