May 14th Thursday (五月 十四日 木曜日)

本文介绍了一个用于计算指定日期前一天的C语言程序。该程序定义了日期结构并使用mktime进行日期转换。通过调整tm结构体成员来实现日期计算。

  These days we have been reading and tring to comprehend the source of the program datrdcol.  But, the complexicity beyonds our mind.

  There is a program to calculate the previoue day of a day.  That is from this project.

//calTodayDate.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

#define     GKCMN_OK            0
#define     GKCMN_NG            -1

typedef struct{
    int     year;           /*  年  */
    int     month;          /*  月  */
    int     day;            /*  日  */
    int     hour;           /*  時  */
    int     min;            /*  分  */
}GSDATCMNdate;


int     DATCMNCalcDate( GSDATCMNdate *srcdate, GSDATCMNdate *objdate, GSDATCMNdate *calc )
{
    struct  tm  *calcdate;              /*  mktimeをする為のtm構造体データ  */
    time_t      timeerr;                /*  mktimeの処理結果    */
    time_t      gtime;
    int         ret;                    /*  関数リターン    */
   
   
    ret = GKCMN_OK;
   
    /*  計算用calcdateの初期設定として、システム時刻をセットする    */
    time( &gtime );
    calcdate = localtime(&gtime);
   
    /*  カレンダタスクの時間±差分時間を、tm構造体にセット  */
    calcdate->tm_year   = srcdate->year - 1900 + calc->year;
    calcdate->tm_mon    = srcdate->month - 1 + calc->month;
    calcdate->tm_mday   = srcdate->day + calc->day;
    calcdate->tm_hour   = srcdate->hour + calc->hour;
    calcdate->tm_min    = srcdate->min + calc->min;
    calcdate->tm_sec    = 0;
   
    /*  日付変換    */
    timeerr = mktime( calcdate );

    /*  正常に変換できた場合、レスポンス用データ領域にセット    */
    if( timeerr != GKCMN_NG )
    {
        objdate->year   = calcdate->tm_year + 1900;
        objdate->month  = calcdate->tm_mon + 1;
        objdate->day    = calcdate->tm_mday;
        objdate->hour   = calcdate->tm_hour;
        objdate->min    = calcdate->tm_min;
    }
    else
    {
        ret = GKCMN_NG;
    }
   
    return( ret );
}

int     DATRDGetMakeDate( GSDATCMNdate *basedate, short stime_of_aday, GSDATCMNdate *makedate )
{

    int             ret;
    GSDATCMNdate    calcdate;                   /*  本日からの差分セット用  */
   
    /*  計算用エリアの初期化    */
    memset( &calcdate, 0, sizeof( calcdate ) );
   
    /*  取得日付は-1日であるため、dayに-1をセット   */
    calcdate.day    = (-1);
   
    /*  取得日付の締め時を求める( 本日の開始時 -1 )   */
    calcdate.hour   = ( ((basedate->hour + 24) - stime_of_aday) % 24 ) - 1;
   
    /*  日付計算    */
    ret = DATCMNCalcDate( basedate, makedate, &calcdate );
   
    /*  時刻は,通知時刻とする   */
    makedate->hour = basedate->hour;
    makedate->min  = basedate->min;
   
    return( ret );
}

int main() {
   
    GSDATCMNdate now_date;
    GSDATCMNdate make_date;
   
    memset(&now_date, 0, sizeof(GSDATCMNdate));
    memset(&make_date, 0, sizeof(GSDATCMNdate));
   
    now_date.year = 2009;
    now_date.month = 5;
    now_date.day = 14;
    now_date.hour = 23;
    now_date.min = 59;
   
    DATRDGetMakeDate(&now_date, 2, &make_date);
   
    printf("year: %d/n", make_date.year);
    printf("month: %d/n", make_date.month);
    printf("day: %d/n", make_date.day);
    printf("hour: %d/n", make_date.hour);
    printf("min: %d/n", make_date.min);
   
    return 0;
}

数据集介绍:垃圾分类检测数据集 一、基础信息 数据集名称:垃圾分类检测数据集 图片数量: 训练集:2,817张图片 验证集:621张图片 测试集:317张图片 总计:3,755张图片 分类类别: - 金属:常见的金属垃圾材料。 - 纸板:纸板类垃圾,如包装盒等。 - 塑料:塑料类垃圾,如瓶子、容器等。 标注格式: YOLO格式,包含边界框和类别标签,适用于目标检测任务。 数据格式:图片来源于实际场景,格式为常见图像格式(如JPEG/PNG)。 二、适用场景 智能垃圾回收系统开发: 数据集支持目标检测任务,帮助构建能够自动识别和分类垃圾材料的AI模型,用于自动化废物分类和回收系统。 环境监测与废物管理: 集成至监控系统或机器人中,实时检测垃圾并分类,提升废物处理效率和环保水平。 学术研究与教育: 支持计算机视觉与环保领域的交叉研究,用于教学、实验和论文发表。 三、数据集优势 类别覆盖全面: 包含三种常见垃圾材料类别,覆盖常生活中主要的可回收物类型,具有实际应用价值。 标注精准可靠: 采用YOLO标注格式,边界框定位精确,类别标签准确,便于模型直接训练和使用。 数据量适中合理: 训练集、验证集和测试集分布均衡,提供足够样本用于模型学习和评估。 任务适配性强: 标注兼容主流深度学习框架(如YOLO等),可直接用于目标检测任务,支持垃圾检测相关应用。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值