Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

โปรแกรม C คำนวณอายุจากวันเกิด

คำนวณอายุเป็น ปี เดือน วัน จากวันที่ปัจจุบันและวันเกิด โดยปรับวันที่/เดือนเมื่อวันเกิดมากกว่าวันที่ปัจจุบัน

ตัวอย่าง

ปัจจุบัน: 21/9/2019, เกิด: 25/9/1996 → 22 ปี 11 เดือน 26 วัน

หลักการ

  1. ถ้าวันเกิด > วันปัจจุบัน: ยืมวันจากเดือนก่อนหน้า (ตามตารางวันในเดือน)
  2. ถ้าเดือนเกิด > เดือนปัจจุบัน: ยืมเดือนจากปี (บวก 12 เดือน ลบ 1 ปี)
  3. ลบวัน เดือน ปี ตามลำดับ

โค้ดตัวอย่าง

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

void age(int pd, int pm, int py, int bd, int bm, int by) {
    int month[] = {31,28,31,30,31,30,31,31,30,31,30,31};
    if (bd > pd) { pd += month[bm-1]; pm--; }
    if (bm > pm) { py--; pm += 12; }
    int fd = pd - bd, fm = pm - bm, fy = py - by;
    printf("Present Age Years: %d Months: %d Days: %d", fy, fm, fd);
}

int main() {
    age(21,9,2019, 25,9,1996);
    return 0;
}

ผลลัพธ์

Present Age Years: 22 Months: 11 Days: 26