Skip to content
Snippets Groups Projects
Select Git revision
  • e1b4c84d353e75fcb2bcec4c7b925c9f8a01b74e
  • master default protected
  • v3-modify-mail
  • snyk-fix-207483a1e839c807f95a55077e86527d
  • translations_3b5aa4f3c755059914cfa23d7d2edcde_ru
  • translations_6e4a5e377a3e50f17e6402264fdbfcc6_ru
  • translations_3b5aa4f3c755059914cfa23d7d2edcde_fa_IR
  • translations_en-yml--master_fa_IR
  • snyk-fix-7d634f2eb65555f41bf06d6af930e812
  • translations_en-yml--master_ar
  • translations_3b5aa4f3c755059914cfa23d7d2edcde_el
  • jfederico-patch-1
  • v2
  • v3
  • v1
  • release-3.1.0.2
  • release-3.1.0.1
  • release-3.1.0
  • release-2.14.8.4
  • release-3.0.9.1
  • release-3.0.9
  • release-3.0.8.1
  • release-2.14.8.3
  • release-3.0.8
  • release-3.0.7.1
  • release-2.14.8.2
  • release-3.0.7
  • release-3.0.6.1
  • release-3.0.6
  • release-3.0.5.4
  • release-3.0.5.3
  • release-2.14.8.1
  • release-3.0.5.2
  • release-3.0.5.1
  • release-3.0.5
35 results

README.md

  • dates.c 1.02 KiB
    #include <stdio.h>
    #include "dates.h"
    
    int is_leap_year (int year)
    {
      if (year % 4 == 0)
        if (year % 100 == 0)
          if (year % 400 == 0)
            return 1;
          else
            return 0;
        else
          return 1;
      else
        return 0;
    }
    
    int days_in_month (int month, int year)
    {
      if (month == 2)
        if (is_leap_year (year))
          return 29;
        else
          return 28;
      else if (month == 4 || month == 6 || month == 9 || month == 11)
        return 30;
      else
        return 31;
    }
    
    void date_print (date *d)
    {
      printf ("%02d.%02d.%04d", d->day, d->month, d->year);
    }
    
    int date_set (date *d, char day, char month, int year)
    {
      d->year = year;
      if (month > 0 && month <= 12)
        d->month = month;
      else
        return 0;
      if (day > 0 && day <= days_in_month (month, year))
        d->day = day;
      else
        return 0;
      return 1;
    }
    
    void date_next (date *d)
    {
      d->day++;
      if (d->day > days_in_month (d->month, d->year))
        {
          d->month++;
          d->day = 1;
          if (d->month > 12)
            {
              d->year++;
              d->month = 1;
            }
        }
    }