Good to Know Database

C: Schaltjahre berechnen


Wie kann man in C überprüfen ob es sich bei einer Jahreszahl um ein Schaltjahr handelt? Zuerst ist einmal zu klären wann ein Jahr eigentlich ein Schaltjahr ist. Ein Jahr ist genau dann ein Schaltjahr, wenn die Jahreszahl durch 4 und nicht durch 100 teilbar ist oder wenn sie durch 400 teilbar ist. Diese Aussage kann man jetzt in den folgenden Code umsetzen.

(((year % 4) == 0) && ((year % 100) != 0)) || ((year % 400) == 0)

Der folgende C-Code zeigt eine Konsolenanwendung, der man zwei Jahreszahlen übergeben kann und welche alle Schaltjahre die sich zwischen den beiden Jahreszahlen befinden berechnet und anzeigt.

#include <stdio.h>

int main(int argc,char *argv[])
{
  int start_year;
  int end_year;
  int year;
  int found;

  //check arguments
  if(argc!=3)
  {
    printf("Usage: leap-year <start_year> <end_year>\n");
    return 1;
  }

  //convert specified arguments to integers
  start_year = atoi(argv[1]);
  end_year = atoi(argv[2]);

  //check plausibility of specified arguments
  if(start_year>end_year)
  {
    printf("Error: Value of <start_year> must be less than the value of <stop_year>!\n");
    return 1;
  }

  found = 0;

  for(year=start_year;year<=end_year;year++)
  {
    if((((year%4)==0) && ((year%100)!=0)) || ((year%400)==0))
    {
      if(found==0)
      {
        printf("Leap-year(s) found in specified range:\n");
        found = 1;
      }
      printf("%d\n",year);
    }
  }

  if(found==0)
  {
    printf("No leap-year found in specified range.\n");
  }

  return 0;
}


Dieser Eintrag wurde am 20.11.2016 erstellt.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_38_2851.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer