#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
// โครงสร้างข้อมูลสินค้า
struct Product {
char name[50];
int quantity;
time_t expiryDate;
int threshold; // จำนวนขั้นต่ำที่ต้องแจ้งเตือน
};
// ฟังก์ชันสำหรับตรวจสอบวันหมดอายุ
int isExpired(time_t expiryDate) {
return difftime
(expiryDate
, time(0)) < 0; }
// ฟังก์ชันสำหรับแสดงวันที่ในรูปแบบที่กำหนด
void formatDate
(time_t
date, char
* buffer
) { struct tm t;
}
int main() {
struct Product products[10]; // กำหนดขนาดสูงสุดของสินค้า
int numProducts = 0;
// เพิ่มข้อมูลสินค้า (สามารถเพิ่มได้มากกว่านี้)
strcpy(products[numProducts].name, "นมสด");
products[numProducts].quantity = 10;
products
[numProducts
].expiryDate
= time(0) + 30 * 24 * 60 * 60; // หมดอายุใน 30 วัน products[numProducts].threshold = 5;
numProducts++;
strcpy(products[numProducts].name, "ไข่ไก่");
products[numProducts].quantity = 5;
products
[numProducts
].expiryDate
= time(0) + 14 * 24 * 60 * 60; // หมดอายุใน 14 วัน products[numProducts].threshold = 10;
numProducts++;
strcpy(products[numProducts].name, "ขนมปัง");
products[numProducts].quantity = 20;
products
[numProducts
].expiryDate
= time(0) + 7 * 24 * 60 * 60; // หมดอายุใน 7 วัน products[numProducts].threshold = 15;
numProducts++;
// ตรวจสอบสินค้าแต่ละรายการ
for (int i = 0; i < numProducts; i++) {
char expiryDateStr[20];
formatDate(products[i].expiryDate, expiryDateStr);
printf("สินค้า: %s\n", products
[i
].name
); printf("จำนวน: %d\n", products
[i
].quantity
); printf("วันหมดอายุ: %s\n", expiryDateStr
);
if (products[i].quantity < products[i].threshold) {
printf("คำเตือน: สินค้า %s เหลือน้อยกว่า %d หน่วย!\n", products
[i
].name
, products
[i
].threshold
); }
if (isExpired(products[i].expiryDate)) {
printf("คำเตือน: สินค้า %s หมดอายุแล้ว!\n", products
[i
].name
); }
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgojaW5jbHVkZSA8dGltZS5oPgoKLy8g4LmC4LiE4Lij4LiH4Liq4Lij4LmJ4Liy4LiH4LiC4LmJ4Lit4Lih4Li54Lil4Liq4Li04LiZ4LiE4LmJ4LiyCnN0cnVjdCBQcm9kdWN0IHsKICAgIGNoYXIgbmFtZVs1MF07CiAgICBpbnQgcXVhbnRpdHk7CiAgICB0aW1lX3QgZXhwaXJ5RGF0ZTsKICAgIGludCB0aHJlc2hvbGQ7IC8vIOC4iOC4s+C4meC4p+C4meC4guC4seC5ieC4meC4leC5iOC4s+C4l+C4teC5iOC4leC5ieC4reC4h+C5geC4iOC5ieC4h+C5gOC4leC4t+C4reC4mQp9OwoKLy8g4Lif4Lix4LiH4LiB4LmM4LiK4Lix4LiZ4Liq4Liz4Lir4Lij4Lix4Lia4LiV4Lij4Lin4LiI4Liq4Lit4Lia4Lin4Lix4LiZ4Lir4Lih4LiU4Lit4Liy4Lii4Li4CmludCBpc0V4cGlyZWQodGltZV90IGV4cGlyeURhdGUpIHsKICAgIHJldHVybiBkaWZmdGltZShleHBpcnlEYXRlLCB0aW1lKDApKSA8IDA7Cn0KCi8vIOC4n+C4seC4h+C4geC5jOC4iuC4seC4meC4quC4s+C4q+C4o+C4seC4muC5geC4quC4lOC4h+C4p+C4seC4meC4l+C4teC5iOC5g+C4meC4o+C4ueC4m+C5geC4muC4muC4l+C4teC5iOC4geC4s+C4q+C4meC4lAp2b2lkIGZvcm1hdERhdGUodGltZV90IGRhdGUsIGNoYXIqIGJ1ZmZlcikgewogICAgc3RydWN0IHRtIHQ7CiAgICBsb2NhbHRpbWVfcigmZGF0ZSwgJnQpOwogICAgc3RyZnRpbWUoYnVmZmVyLCAyMCwgIiVZLSVtLSVkIiwgJnQpOwp9CgppbnQgbWFpbigpIHsKICAgIHN0cnVjdCBQcm9kdWN0IHByb2R1Y3RzWzEwXTsgLy8g4LiB4Liz4Lir4LiZ4LiU4LiC4LiZ4Liy4LiU4Liq4Li54LiH4Liq4Li44LiU4LiC4Lit4LiH4Liq4Li04LiZ4LiE4LmJ4LiyCiAgICBpbnQgbnVtUHJvZHVjdHMgPSAwOwoKICAgIC8vIOC5gOC4nuC4tOC5iOC4oeC4guC5ieC4reC4oeC4ueC4peC4quC4tOC4meC4hOC5ieC4siAo4Liq4Liy4Lih4Liy4Lij4LiW4LmA4Lie4Li04LmI4Lih4LmE4LiU4LmJ4Lih4Liy4LiB4LiB4Lin4LmI4Liy4LiZ4Li14LmJKQogICAgc3RyY3B5KHByb2R1Y3RzW251bVByb2R1Y3RzXS5uYW1lLCAi4LiZ4Lih4Liq4LiUIik7CiAgICBwcm9kdWN0c1tudW1Qcm9kdWN0c10ucXVhbnRpdHkgPSAxMDsKICAgIHByb2R1Y3RzW251bVByb2R1Y3RzXS5leHBpcnlEYXRlID0gdGltZSgwKSArIDMwICogMjQgKiA2MCAqIDYwOyAvLyDguKvguKHguJTguK3guLLguKLguLjguYPguJkgMzAg4Lin4Lix4LiZCiAgICBwcm9kdWN0c1tudW1Qcm9kdWN0c10udGhyZXNob2xkID0gNTsKICAgIG51bVByb2R1Y3RzKys7CgogICAgc3RyY3B5KHByb2R1Y3RzW251bVByb2R1Y3RzXS5uYW1lLCAi4LmE4LiC4LmI4LmE4LiB4LmIIik7CiAgICBwcm9kdWN0c1tudW1Qcm9kdWN0c10ucXVhbnRpdHkgPSA1OwogICAgcHJvZHVjdHNbbnVtUHJvZHVjdHNdLmV4cGlyeURhdGUgPSB0aW1lKDApICsgMTQgKiAyNCAqIDYwICogNjA7IC8vIOC4q+C4oeC4lOC4reC4suC4ouC4uOC5g+C4mSAxNCDguKfguLHguJkKICAgIHByb2R1Y3RzW251bVByb2R1Y3RzXS50aHJlc2hvbGQgPSAxMDsKICAgIG51bVByb2R1Y3RzKys7CgogICAgc3RyY3B5KHByb2R1Y3RzW251bVByb2R1Y3RzXS5uYW1lLCAi4LiC4LiZ4Lih4Lib4Lix4LiHIik7CiAgICBwcm9kdWN0c1tudW1Qcm9kdWN0c10ucXVhbnRpdHkgPSAyMDsKICAgIHByb2R1Y3RzW251bVByb2R1Y3RzXS5leHBpcnlEYXRlID0gdGltZSgwKSArIDcgKiAyNCAqIDYwICogNjA7IC8vIOC4q+C4oeC4lOC4reC4suC4ouC4uOC5g+C4mSA3IOC4p+C4seC4mQogICAgcHJvZHVjdHNbbnVtUHJvZHVjdHNdLnRocmVzaG9sZCA9IDE1OwogICAgbnVtUHJvZHVjdHMrKzsKCiAgICAvLyDguJXguKPguKfguIjguKrguK3guJrguKrguLTguJnguITguYnguLLguYHguJXguYjguKXguLDguKPguLLguKLguIHguLLguKMKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtUHJvZHVjdHM7IGkrKykgewogICAgICAgIGNoYXIgZXhwaXJ5RGF0ZVN0clsyMF07CiAgICAgICAgZm9ybWF0RGF0ZShwcm9kdWN0c1tpXS5leHBpcnlEYXRlLCBleHBpcnlEYXRlU3RyKTsKCiAgICAgICAgcHJpbnRmKCLguKrguLTguJnguITguYnguLI6ICVzXG4iLCBwcm9kdWN0c1tpXS5uYW1lKTsKICAgICAgICBwcmludGYoIuC4iOC4s+C4meC4p+C4mTogJWRcbiIsIHByb2R1Y3RzW2ldLnF1YW50aXR5KTsKICAgICAgICBwcmludGYoIuC4p+C4seC4meC4q+C4oeC4lOC4reC4suC4ouC4uDogJXNcbiIsIGV4cGlyeURhdGVTdHIpOwoKICAgICAgICBpZiAocHJvZHVjdHNbaV0ucXVhbnRpdHkgPCBwcm9kdWN0c1tpXS50aHJlc2hvbGQpIHsKICAgICAgICAgICAgcHJpbnRmKCLguITguLPguYDguJXguLfguK3guJk6IOC4quC4tOC4meC4hOC5ieC4siAlcyDguYDguKvguKXguLfguK3guJnguYnguK3guKLguIHguKfguYjguLIgJWQg4Lir4LiZ4LmI4Lin4LiiIVxuIiwgcHJvZHVjdHNbaV0ubmFtZSwgcHJvZHVjdHNbaV0udGhyZXNob2xkKTsKICAgICAgICB9CgogICAgICAgIGlmIChpc0V4cGlyZWQocHJvZHVjdHNbaV0uZXhwaXJ5RGF0ZSkpIHsKICAgICAgICAgICAgcHJpbnRmKCLguITguLPguYDguJXguLfguK3guJk6IOC4quC4tOC4meC4hOC5ieC4siAlcyDguKvguKHguJTguK3guLLguKLguLjguYHguKXguYnguKchXG4iLCBwcm9kdWN0c1tpXS5uYW1lKTsKICAgICAgICB9CgogICAgICAgIHByaW50ZigiXG4iKTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQ==
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
// โครงสร้างข้อมูลสินค้า
struct Product {
char name[50];
int quantity;
time_t expiryDate;
int threshold; // จำนวนขั้นต่ำที่ต้องแจ้งเตือน
};
// ฟังก์ชันสำหรับตรวจสอบวันหมดอายุ
int isExpired(time_t expiryDate) {
return difftime(expiryDate, time(0)) < 0;
}
// ฟังก์ชันสำหรับแสดงวันที่ในรูปแบบที่กำหนด
void formatDate(time_t date, char* buffer) {
struct tm t;
localtime_r(&date, &t);
strftime(buffer, 20, "%Y-%m-%d", &t);
}
int main() {
struct Product products[10]; // กำหนดขนาดสูงสุดของสินค้า
int numProducts = 0;
// เพิ่มข้อมูลสินค้า (สามารถเพิ่มได้มากกว่านี้)
strcpy(products[numProducts].name, "นมสด");
products[numProducts].quantity = 10;
products[numProducts].expiryDate = time(0) + 30 * 24 * 60 * 60; // หมดอายุใน 30 วัน
products[numProducts].threshold = 5;
numProducts++;
strcpy(products[numProducts].name, "ไข่ไก่");
products[numProducts].quantity = 5;
products[numProducts].expiryDate = time(0) + 14 * 24 * 60 * 60; // หมดอายุใน 14 วัน
products[numProducts].threshold = 10;
numProducts++;
strcpy(products[numProducts].name, "ขนมปัง");
products[numProducts].quantity = 20;
products[numProducts].expiryDate = time(0) + 7 * 24 * 60 * 60; // หมดอายุใน 7 วัน
products[numProducts].threshold = 15;
numProducts++;
// ตรวจสอบสินค้าแต่ละรายการ
for (int i = 0; i < numProducts; i++) {
char expiryDateStr[20];
formatDate(products[i].expiryDate, expiryDateStr);
printf("สินค้า: %s\n", products[i].name);
printf("จำนวน: %d\n", products[i].quantity);
printf("วันหมดอายุ: %s\n", expiryDateStr);
if (products[i].quantity < products[i].threshold) {
printf("คำเตือน: สินค้า %s เหลือน้อยกว่า %d หน่วย!\n", products[i].name, products[i].threshold);
}
if (isExpired(products[i].expiryDate)) {
printf("คำเตือน: สินค้า %s หมดอายุแล้ว!\n", products[i].name);
}
printf("\n");
}
return 0;
}