lcat

My personal /var/log

Function assignment

#include <iostream>
#include <ctime>

int umur(int tahun);
int umur(int tahun, int bulan);
int umur(int tahun, int bulan, int tanggal);
int umur();

int main() {
    int tahun, bulan, tanggal;

    std::cout << "Masukkan tahun, bulan, dan tanggal (dipisahkan spasi): ";
    std::cin >> tahun;
    std::cin >> bulan;
    std::cin >> tanggal;

    std::cout << "Umur dalam satuan tahun: ";
    std::cout << umur(tahun) << '\n';
    std::cout << "Umur dalam satuan bulan: ";
    std::cout << umur(tahun, bulan) << '\n';
    std::cout << "Umur dalam satuan hari: ";
    std::cout << umur(tahun, bulan, tanggal) << '\n';
    std::cout << "Umur saya dalam satuan hari: ";
    std::cout << umur() << '\n';
    return 0;
}

int umur(int tahun) {
    time_t t;
    t = time(NULL);
    struct tm *now = localtime(&t);
    return (now->tm_year + 1900) - tahun;
}

int umur(int tahun, int bulan) {
    time_t t_now;
    struct tm *now;
    int m1, m2;

    t_now = time(NULL);
    now = localtime(&t_now);
    m1 = (tahun - 1900) * 12 + bulan;
    m2 = now->tm_year * 12 + now->tm_mon + 1;
    return m2 - m1;
}

int umur(int tahun, int bulan, int tanggal) {
    double diff;
    time_t t_now;
    struct tm *birth;
    struct tm *now;

    t_now = time(NULL);
    birth = new struct tm;
    now = localtime(&t_now);
    memcpy(birth, now, sizeof(struct tm));

    birth->tm_year = tahun - 1900;
    birth->tm_mon = bulan - 1;
    birth->tm_mday = tanggal;

    diff = difftime(mktime(now), mktime(birth));

    delete birth;
    return diff / (24 * 60 * 60);
}

int umur() { return umur(2003, 7, 26); }
Created: 2021-10-21T10:07:25, Last updated: 2021-10-21T10:28:07, ID: 54118df3-71cc-4e73-983d-9583703038c3