Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <time.h>
- typedef struct tagDate { // Дефиниране на тип на структурата за дата.
- int iYear;
- int iMonth;
- int iDay;
- } Date;
- int fn_ValidateLeapYear(int iLeapYear) { // Функция за проверка на високосна година.
- return (((iLeapYear % 4 == 0) && (iLeapYear % 100 != 0)) || (iLeapYear % 400 == 0));
- }
- int fn_ValidateYear(Date *ptr_ValidDate) { // Функция за проверка на валидност на датата.
- if (ptr_ValidDate -> iMonth < 1 || ptr_ValidDate -> iMonth > 12)
- return 0;
- if (ptr_ValidDate -> iDay < 1 || ptr_ValidDate -> iDay > 31)
- return 0;
- if (ptr_ValidDate -> iMonth == 2) { // Проверка на валидността за месец Февруари.
- if (fn_ValidateLeapYear(ptr_ValidDate -> iYear))
- return (ptr_ValidDate -> iDay <= 29);
- else
- return (ptr_ValidDate -> iDay <= 28);
- }
- if (ptr_ValidDate -> iMonth == 4 || ptr_ValidDate->iMonth == 6 || ptr_ValidDate -> iMonth == 9 || ptr_ValidDate -> iMonth == 11) // Проверка на валидността на месеците с 30 дни.
- return (ptr_ValidDate -> iDay <= 30);
- return 1;
- }
- int main() {
- Date getDate = { 0 };
- int iStat = 0; // Променлива за проверка на статуса.
- printf("Enter date: "); // Въвежда се във формат DD/MM/YYYY.
- scanf("%d/%d/%d", &getDate.iDay, &getDate.iMonth, &getDate.iYear);
- //Проверка за валидност на датата.
- iStat = fn_ValidateYear(&getDate);
- if(iStat != 1) {
- printf("Date is NOT valid!\n");
- } else {
- printf("Date is valid!\n");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement