PayPal'a üye olun ve kredi kartı ödemelerini kabul etmeye anında başlayın.
 

İki Tarih Arasındaki Gün Farkını Bulan Program

C, c++, c# İki Tarih Arasındaki Gün Farkını Bulan Program Programlama Dilleri hakkında bilgi paylaş; İki tarih arasındaki gün farkını bulmak için verilen bir tarihi, 01/01/1900 tarihinden itibaren geç...
Cevapla
 
Seçenekler
  #1  
Arama 01-12-2007, 08:55
egitimbilgisi - ait Kullanıcı Resmi (Avatar)

Üyelik Tarihi: 20/11/07
Mesajlar: 1.755
 
     WS-Ticareti: (3)
Blog Yazıları: 3
Teşekkürleri: 48
375 Msg. 450 Tşkr.
Rep Gücü: 100 egitimbilgisi has a brilliant futureegitimbilgisi has a brilliant futureegitimbilgisi has a brilliant futureegitimbilgisi has a brilliant futureegitimbilgisi has a brilliant futureegitimbilgisi has a brilliant futureegitimbilgisi has a brilliant futureegitimbilgisi has a brilliant futureegitimbilgisi has a brilliant futureegitimbilgisi has a brilliant futureegitimbilgisi has a brilliant future

İki Tarih Arasındaki Gün Farkını Bulan Program

İki tarih arasındaki gün farkını bulmak için verilen bir tarihi, 01/01/1900 tarihinden itibaren geçen toplam gün sayısına çeviren bir yardımcı fonksiyon kullanılıyor.


first date [day month year]: 20 12 2000
second date [day monty year]: 10 12 1973
total days between 20th Dec 2000 Wed and 10th Dec 1973 Mon: 9872

first date [day month year]: 01 01 1998
second date [day month year]: 01 12 1950
total days between 01st Jan 1998 Thu and 01st Dec 1950 Fri: 17198


Kod:
#include <stdio.h>
#include <stdlib.h>

typedef enum {FALSE, TRUE} BOOL;

#define YEARBASE 1900

typedef struct DATE_{
int day;
int month;
int year;
}DATE;

BOOL is_leap(int year);
DATE *set_date(int day, int month, int year, DATE *date);
void print_date(const DATE *date);
long date_to_number(const DATE *date);
int day_of_year(const DATE *date);
long date_dif(const DATE *date1, const DATE *date2);
BOOL is_valid(const DATE *date);

char *days[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
char *months[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul","Aug", "Sep", "Oct", "Nov", "Dec"};

int daytab[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

int main(void)
{
int day, month, year;
DATE d1, d2;

for (;; ) {
printf("first date [day month year]: ");
scanf("%d%d%d", &day, &month, &year);
set_date(day, month, year, &d1);
if (!is_valid(&d1))
printf("invalid date!\n");
else
break;
}

for (;; ) {
printf("second date [day month year]: ");
scanf("%d%d%d", &day, &month, &year);
set_date(day, month, year, &d2);
if (!is_valid(&d2))
printf("invalid date!\n");
else
break;
};

printf("total days between ");
print_date(&d1);
printf(" and ");
print_date(&d2);
printf(": %d\n", date_dif(&d1, &d2));
return 0;
}
/*************************************************/
BOOL is_leap(int year)
{
return (year % 4 == 0 && year % 100 != 0 || year % 400 == 0);
}
/*************************************************/
DATE *set_date(int day, int month, int year, DATE *date)
{
date->day = day;
date->month = month;
date->year = year;
return date;
}
/*************************************************/
void print_date(const DATE *date)
{
printf("%02d", date->day);

switch (date->day) {
case 1: case 21: case 31:
printf("st "); break;
case 2: case 22:
printf("nd "); break;
case 3: case 23:
printf("rd "); break;
default :
printf("th ");
}
printf("%s ", months[date->month - 1]);
printf("%d ", date->year);
printf("%s", days[(int)(date_to_number(date) % 7)]);
}
/*************************************************/
long date_to_number(const DATE *date)
{
long result = 0;
int year;

for (year = YEARBASE; year < date->year; year++)
result += 365 + is_leap(year);
result += day_of_year(date);
return result;
}
/*************************************************/
int day_of_year(const DATE *date)
{
int k;
int result = date->day;

daytab[1] = 28 + is_leap(date->year);

for (k = 0; k < date->month - 1; ++k)
result += daytab[k];
return result;
}
/*************************************************/
long date_dif(const DATE *date1, const DATE *date2)
{
return date_to_number(date1) - date_to_number(date2);
}
/*************************************************/
BOOL is_valid(const DATE *date)
{
daytab[1] = 28 + is_leap(date->year);

if (date->year < YEARBASE)
return FALSE;
if (date->day > daytab[date->month - 1] || date->day <= 0)
return FALSE;
if (date->month < 1 || date->month > 12)
return FALSE;

return TRUE;
}
__________________
-> Eğitim dünyasında gözünüz,Hayata ve İnsana Rehber,en iyi eğitim sitesi,eğitim bilginizin en uç noktası,eğitimbilgisi
Alıntı ile Cevapla
Cevapla


Seçenekler


Benzer Konular
Konu Konu Açanlar Forum Cevaplar Güncel Mesajlar
Php ie iki tarih arasındaki fark gün olarak Miliotta Php kodları 0 12-03-2008 03:47
C++ ta İki Boyutlu Dizinin Transpozesini Bulan Program egitimbilgisi C, c++, c# 0 02-12-2007 08:38
Program Ekle/Kaldır da silinmeyen program isimleri nasıl silinir? egitimbilgisi Yeni Başlayanlara WebmasterSitesi 0 30-11-2007 01:55
Php ie iki tarih arasındaki fark gün olarak B737 PHP scriptler 1 18-11-2007 12:09
Hangi çesit üçgen olugunu bulan program |C rhythm C, c++, c# 0 27-10-2007 03:19

Siteye link vermek için alttaki kodu sitenize ekleyin
Ya da kodu Ctrl+C ile kopyalayın
Örnek görünüm: Webmaster Sitesi

Kadınlar blogu ~ Apple iPhone, iPod Touch ( iTouch ) Forum iPhone