Skip to content

Instantly share code, notes, and snippets.

@riemass
Created April 16, 2020 10:44
Show Gist options
  • Select an option

  • Save riemass/c52d9f0e78a21ba6359972c4c7d327c9 to your computer and use it in GitHub Desktop.

Select an option

Save riemass/c52d9f0e78a21ba6359972c4c7d327c9 to your computer and use it in GitHub Desktop.
LV OP FET
#include <stdio.h>
// Napisati program koji treba da korisniku ispise koliko je dana proslo
// od pocetka nove ere do unesenog dan.
// Ispisati koji je dan u sedmici!
// 1. 1. 1900. je bio ponedeljak
// Deklaracija
int da_li_je_prestupna(int godina);
long broj_dana_do_godine(int godina);
long broj_dana_do_mjeseca(int mjesec, int godina);
long broj_dana_do_datuma(int dan, int mjesec, int godina);
int main() {
int dan = 0, mjesec, godina;
long broj_dana = 0;
long broj_dana_1900;
printf("Unesite datun: ");
scanf("%d %d %d", &dan, &mjesec, &godina);
printf("Unijesi ste datum %d. %d. %d.\n", dan, mjesec, godina);
// broj dana od 1. 1. 1. do 16. 4. 2020.
broj_dana = broj_dana_do_datuma(dan, mjesec, godina);
printf("Proslo je %ld dana.\n", broj_dana);
broj_dana_1900 = broj_dana_do_datuma(1, 1, 1900);
int dan_u_sedmici = (broj_dana - broj_dana_1900) % 7;
printf("Taj dan je bio ");
switch (dan_u_sedmici) {
case 0:
puts("ponedeljak");
break;
case 1:
puts("utorak");
break;
case 2:
puts("srijeda");
break;
case 3:
puts("cetvrtak");
break;
case 4:
puts("petak");
break;
case 5:
puts("subota");
break;
case 6:
puts("nedelja");
break;
}
// zadatak 2
// koliko nedelja padne na prvi u mjesecu od 1.1.1901. do 31.12.2000.
for (godina = 1901; godina <= 2000; godina++) {
for (mjesec = 1; mjesec <= 12; mjesec++) {
if ((broj_dana_do_datuma(1, mjesec, godina) - broj_dana_1900) % 7 == 6) {
printf("Dana 1. %d. %d. je bila nedelja\n", mjesec, godina);
}
}
}
return 0;
}
// Definicija
long broj_dana_do_datuma(int dan, int mjesec, int godina) {
// broj dana od 1. 1. 1.
long broj_dana = broj_dana_do_godine(godina);
broj_dana += broj_dana_do_mjeseca(mjesec, godina);
broj_dana += dan - 1;
return broj_dana;
}
long broj_dana_do_mjeseca(int mjesec, int godina) {
long broj_dana = 0;
// ako je mjesec 1, broj_dana += 0;
// mjesec 2, broj_dana += 31;
// mjesec 3, broj_dana += 31; broj_dana += 29;
switch (mjesec) {
case 12:
broj_dana += 30;
case 11:
broj_dana += 31;
case 10:
broj_dana += 30;
case 9:
broj_dana += 31;
case 8:
broj_dana += 31;
case 7:
broj_dana += 30;
case 6:
broj_dana += 31;
case 5:
broj_dana += 30;
case 4:
broj_dana += 31;
case 3:
broj_dana += 28 + da_li_je_prestupna(godina);
case 2:
broj_dana += 31;
}
return broj_dana;
}
int da_li_je_prestupna(int godina) {
return (godina % 4 == 0 && godina % 100 != 0) || (godina % 400 == 0);
}
long broj_dana_do_godine(int godina) {
long broj_dana = 0;
int i;
// prvi dio - koliko je dana proslo do te godine
for (i = 1; i < godina; i++) {
if (da_li_je_prestupna(i)) {
broj_dana += 366; // ako je prestupna
} else {
broj_dana += 365; // ako nije prestupna
}
}
return broj_dana;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment