| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 719 人关注过本帖
标题:求统计账户虚拟币的程序
只看楼主 加入收藏
xpmv123
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2022-10-28
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
求统计账户虚拟币的程序
思路:
1.每月可领取100币
2.每日签到获得3币
3.1技术值可得1币
4.求和
注:手动输入注册时间年月日,输入技术值,c语言或python编写
现在不知道时间怎么计算,就是从输入时间到今天一共多少天
搜索更多相关主题的帖子: 统计 输入 时间 虚拟 账户 
2022-10-28 21:13
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9029
专家分:54050
注 册:2011-1-18
收藏
得分:20 
填好 struct tm,https://zh.
传给 mktime 转成 time_t,https://zh.

time函数获取当前时间,https://zh.

difftime函数获取两个 time_t 之差,单位是“秒”,https://zh.

秒 换成 天数 不用我说了,就是除以 24*3600
2022-10-28 23:04
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9029
专家分:54050
注 册:2011-1-18
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <time.h>
#include <math.h>

int seconds_to_current( double* delta, int year, int mon, int day, int hour, int min, int sec )
{
    struct tm t;
    t.tm_year = year-1900;
    t.tm_mon = mon-1;
    t.tm_mday = day;
    t.tm_hour = hour;
    t.tm_min = min;
    t.tm_sec = sec;
    time_t time_beg = mktime(&t);
    if( time_beg == (time_t)(-1) )
        return -1;

    time_t time_end = time(NULL);
    if( time_end == (time_t)(-1) )
        return -2;

    *delta = difftime( time_end, time_beg );
    return 0;
}

void foo( int year, int mon, int day )
{
    double delta;
    int r = seconds_to_current( &delta, year, mon, day, 0, 0, 0 );
    if( r == -1 )
        printf( "%04d-%02d-%02d 不在 time_t 的表达范围之内.\n", year, mon, day );
    else if( r == -2 )
        printf( "当前日历时间 不在 time_t 的表达范围之内.\n" );
    else
    {
        double seconds = round( fabs(delta) ); // 四舍五入到整数秒
        long hms = lround( fmod(seconds, 24*60*60) );
        double days = round( (seconds-hms)/(24.*60*60) ); // 天数
        long hour_ = hms/3600;
        long min_ = hms%3600/60;
        long sec_ = hms%60;
        printf( "%s %.f天%ld时%ld分%ld秒\n", (delta<0?"未来":"迄今"), days, hour_, min_, sec_ );
    }
}

int main( void )
{
    foo( 2021, 10, 29 );

    foo( 2022, 10, 28 );
    foo( 2022, 10, 29 );
    foo( 2022, 10, 30 );

    foo( 2023, 10, 29 );
}


输出
迄今 365天17时20分42秒
迄今 1天17时20分42秒
迄今 0天17时20分42秒
未来 0天6时39分18秒
未来 364天6时39分18秒
2022-10-29 17:20
快速回复:求统计账户虚拟币的程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013513 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved