8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

使用两个数据集根据条件列值动态附加时间戳

Fred Nobre 2月前

154 0

为什么我一直收到此错误 c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:无法打开输出文件 stars.exe:权限被拒绝 collect2.exe:呃...

为什么我一直收到此错误 c:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:无法打开输出文件 stars.exe:权限被拒绝 collect2.exe:错误:ld 返回 1 退出状态

但是它可以运行简单的代码,例如打印“Hello world”

我尝试保存并授予文件权限。我希望我的代码能够正常运行

帖子版权声明 1、本帖标题:使用两个数据集根据条件列值动态附加时间戳
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Fred Nobre在本站《datetime》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 这个问题与我几天前提到的问题类似,但有一些特别的注意事项。我提前诚挚地道歉。我有两个文件放入了数据框中,df1 和 df2...

    这个问题与我几天前提到的问题类似,但有一些特别的注意事项。我提前真诚地道歉。我有两个文件放入数据框中,df1 和 df2,它们分别具有不同的信息和不同的标题,但在两个文件中,它们共享一个共同的“id”标题。本质上,这两个文件包含它们共享的共同“id”的不同信息集。例如:

    df1:

    ID 日期 另一个
    WPA54 2023-08-01 A
    WPA54 2023-08-01
    WPA54 2023-08-01 C
    WPA54 2023-08-01
    IBT675 2023-08-01
    IBT675 2023-08-01 F

    df2

    ID 约会时间
    WPA54 2023-08-01 00:02:52.527
    WPA54 2023-08-01 00:10:10.640
    WPA54 2023-08-01 00:10:12:740
    WPA54 2023-08-01 00:10:26.937
    IBT675 2023-08-01 00:10:10.640
    IBT675 2023-08-01 00:10:11.540
    IBT675 2023-08-01 00:10:12:740

    为了简单起见,我想采用 df2 的 DateTime 值并在 df1 中创建一个名为 fix_timestamps 的新列,其中唯一时间以分号“;”分隔符连接,并与 df1 中的正确 id 配对。这样做的重要性在于 df1 和 df2 具有两种不同的形状。df1 更“固定”,包含被视为时间点的信息,我需要将其附加到 df2 中的信息,因为 df2 是一个更大的文件,包含许多需要附加到 df1 的 id 的不同时间。

    上一个问题与这个问题的区别在于,我之前的问题是基于一个通过合并的文件而得出的,当我开始更多地了解我的数据时,我意识到我做错了。

    我不能为此承担责任,因为 mozway 对我之前的问题很有帮助。这对于一个文件来说非常有效,但是当我使用两个文件时...

    import pandas as pd
    
    # Define the file paths for your CSV files
    file1_path = 'input1.csv'
    file2_path = 'input2.csv'
    
    # Read the CSV files into DataFrames
    df1 = pd.read_csv(file1_path)
    df2 = pd.read_csv(file2_path)
    
    def append_timestamp(row):
        id_length = len(row['id'])
        timestamps = []
    
        for i in range(id_length):
            timestamps.append(row['DateTime'])
        return ';'.join(timestamps)
    
    
    # My thinking of this was to look in my df2 which has the DateTime and group it by the df2 id and create the new column, 'fix_timestamps' in df1 which would have all the DateTime values already appended.
    
    df1['fix_timestamps'] = (df2['DateTime'].astype(str).groupby(df2['id'])
                            .transform(lambda x: ';'.join(x.unique())))
    
    
    # Save the DataFrame to a CSV file
    output_file_path = 'output'
    df1.to_csv(output_file_path, index=False)
    

    我期望的是这样的:

    ID 约会时间
    WPA54 2023-08-01 00:02:52.527; 2023-08-01 00:10:10.640;2023-08-01 00:10:12:740;2023-08-01 00:10:26.937
    WPA54 2023-08-01 00:02:52.527; 2023-08-01 00:10:10.640;2023-08-01 00:10:12:740;2023-08-01 00:10:26.937
    WPA54 2023-08-01 00:02:52.527; 2023-08-01 00:10:10.640;2023-08-01 00:10:12:740;2023-08-01 00:10:26.937
    WPA54 2023-08-01 00:02:52.527; 2023-08-01 00:10:10.640;2023-08-01 00:10:12:740;2023-08-01 00:10:26.937
    IBT675 2023-08-01 00:10:10.640;2023-08-01 00:10:11.540;2023-08-01 00:10:12:740
    IBT675 2023-08-01 00:10:10.640;2023-08-01 00:10:11.540;2023-08-01 00:10:12:740
    IBT675 2023-08-01 00:10:10.640;2023-08-01 00:10:11.540;2023-08-01 00:10:12:740

    但我得到的是 WPA54、IBET675 和每个 id 的 相同

    ID 约会时间
    WPA54 2023-08-01 00:02:52.527; 2023-08-01 00:10:10.640;2023-08-01 00:10:12:740;2023-08-01 00:10:26.937
    WPA54 2023-08-01 00:02:52.527; 2023-08-01 00:10:10.640;2023-08-01 00:10:12:740;2023-08-01 00:10:26.937
    WPA54 2023-08-01 00:02:52.527; 2023-08-01 00:10:10.640;2023-08-01 00:10:12:740;2023-08-01 00:10:26.937
    WPA54 2023-08-01 00:02:52.527; 2023-08-01 00:10:10.640;2023-08-01 00:10:12:740;2023-08-01 00:10:26.937
    IBT675 2023-08-01 00:02:52.527; 2023-08-01 00:10:10.640;2023-08-01 00:10:12:740;2023-08-01 00:10:26.937
    IBT675 2023-08-01 00:02:52.527; 2023-08-01 00:10:10.640;2023-08-01 00:10:12:740;2023-08-01 00:10:26.937
    IBT675 2023-08-01 00:02:52.527; 2023-08-01 00:10:10.640;2023-08-01 00:10:12:740;2023-08-01 00:10:26.937

    先感谢您

  • 你可以通过这种方式解决:

    import pandas as pd
    
    data_df1 = {
        'id': ['WPA54', 'WPA54', 'WPA54', 'WPA54', 'IBT675', 'IBT675'],
        'Date': ['2023-08-01', '2023-08-01', '2023-08-01', '2023-08-01', '2023-08-01', '2023-08-01'],
        'another_col': ['A', 'B', 'C', 'D', 'E', 'F']
    }
    
    data_df2 = {
        'id': ['WPA54', 'WPA54', 'WPA54', 'WPA54', 'IBT675', 'IBT675', 'IBT675'],
        'DateTime': ['2023-08-01 00:02:52.527', '2023-08-01 00:10:10.640', '2023-08-01 00:10:12.740', 
                     '2023-08-01 00:10:26.937', '2023-08-01 00:10:10.640', '2023-08-01 00:10:11.540', 
                     '2023-08-01 00:10:12.740']
    }
    
    df1 = pd.DataFrame(data_df1)
    df2 = pd.DataFrame(data_df2)
    
    timestamps = df2.groupby('id')['DateTime'].apply(lambda x: ';'.join(x.unique())).reset_index()
    timestamps.columns = ['id', 'fix_timestamps']
    df1_updated = pd.merge(df1, timestamps, on='id', how='left')
    
    df1_updated
    
    timestamps = df2.groupby('id')['DateTime'].apply(lambda x: ';'.join(x.unique())).reset_index()
    timestamps.columns = ['id', 'fix_timestamps']
    
    df1 = pd.merge(df1, timestamps, on='id', how='left')
    
    df1.to_csv(r'C:\Users\s-degossondevarennes/outputdd.csv', index=False)   
    

    这将返回

    enter image description here

  • 你好,我正在创建一个 R 时间序列,但建模后,我需要将列转换回我可以实际解释的日期 (yyyy-mm-dd)。bus_date <- as.Date(c('2017-04-01', '2017-04-08', '201...

    你好,我正在创建一个 R 时间序列,但建模后,我需要将列转换回我可以实际解释的日期 (yyyy-mm-dd)。

    bus_date <- as.Date(c('2017-04-01', '2017-04-08', '2017-04-15', '2017-04-22', '2017-04-29'))
    sales <- c(100, 110, 110, 130, 120)
    
    sales_data <- data.frame(bus_date, sales)
    
    sales_data.ts <- ts(sales_data$sales, 
                           start = min(sales_data$bus_date),
                           freq = (365.25/7))
    sales_data.ts
    

    我尝试使用 lubridate 中的某些函数(当我有每日数据(如 2015.123、2015.456 等)时,这些函数有效)但不起作用......我这里遗漏了什么?我如何才能找回日期?

    setDT(data_ARIMA, keep.rownames = TRUE)[]
    data_ARIMA$dates_intermediate <- date_decimal(as.numeric(data_ARIMA$rn))
    data_ARIMA$dates <- as.Date(date_decimal(as.numeric(data_ARIMA$rn)))
    data_ARIMA
    
  • 您使用的频率可能不适合您的数据。试试这个

    sales_data.ts <- ts(sales_data$sales, 
                        start = min(sales_data$bus_date),
                        frequency = 1/7) #OR deltat = 7
    sales_data.ts
    #Time Series:
    #Start = 17257 
    #End = 17285 
    #Frequency = 0.142857142857143 
    #[1] 100 110 110 130 120
    
    as.Date(as.numeric(time(sales_data.ts)))
    #[1] "2017-04-01" "2017-04-08" "2017-04-15" "2017-04-22" "2017-04-29"
    
  • 我正在尝试比较日期以找出某人何时不再符合资格。在此示例中,他们从 10/1/23 到 10/19/23 不符合资格。因此 9/30/23 exp_date 到 10/20/23 eff_date。我如何找到

    我正在尝试比较日期以找出某人何时不再符合资格。在此示例中,他们从 10/1/23 到 10/19/23 不符合资格。因此,9/30/23 exp_date 到 10/20/23 eff_date。我如何找到该范围?谢谢。

    enter image description here

    CREATE TABLE ADMITS
    (
    ID_NUM INT
    ,AUTH_EFF_DATE  date null
    ,AUTH_EXP_DATE  date null
    ,MEM_EFF_DATE   date null
    ,MEM_EXP_DATE date null
    
    )
    
    INSERT INTO ADMITS (ID_NUM,AUTH_EFF_DATE,AUTH_EXP_DATE,MEM_EFF_DATE,MEM_EXP_DATE)
    VALUES
     (118206307, '1/2/2023', '6/7/2023', '4/22/2022', '9/30/2023')
    ,(118206307, '8/30/2023', '2/17/2024', '4/22/2022', '9/30/2023')
    ,(118206307, '1/2/2023', '6/7/2023', '10/20/2023', '12/31/9999')
    ,(118206307, '8/30/2023', '2/17/2024', '10/20/2023', '12/31/9999')
    ;
    

    从此我想将该日期范围与 auth_eff_date 和 auth_exp_date 进行比较,以显示哪些 auth 范围缺少资格。我认为可能是超前或滞后,但不确定如何或是否正确。

  • @nbk...我想显示 id_num、8/30/23、2/17/24,然后显示缺少的日期、10/1/23 和 10/19/23。

  • 您的数据似乎已是 AUTH 日期和 MEM 日期之间的交叉连接。我建议您在原始数据通过(可能构造不良的)查询进行处理之前发布它。

  • 我想做文本预测研究,但我使用的数据集只有 140000 个字,我想要更大的数据集进行模型训练。有谁能帮忙找出更大的乌尔都语数据集...

    我想做文本预测研究,但我使用的数据集只有 140000 个字,我想要更大的数据集进行模型训练。

    请有人帮忙找出规模较大且可以用于文本预测任务的乌尔都语数据集。

    我尝试搜索大量数据集,但没有找到适合我的项目的数据集

  • 已提出多种解决方案。请提供更多示例,以便我们验证解决方案、识别极端情况并评估性能。

  • 使用 pandas.read_csv() 读取一个 7GB 大小的 csv 文件,需要很长时间并且消耗 40GB+ 内存,甚至消耗更多。我在一台有 48G 内存的 win PC 上运行。sc_ge = pd.read...

    用于 pandas.read_csv() 读取7GB大小的csv文件,需要很长时间并且消耗40GB+内存,甚至消耗更多。

    我在一台有48G内存的win PC上运行。

    sc_ge = pd.read_csv('matrix.csv', index_col=0)
    

    我下载的matrix.csv文件来自 文本

    基因表达矩阵(csv)

    我尝试读取该文件的前几行,发现它有45769列,所以我生成了一个包含8000行和45769行随机数的csv文件,我生成的文件大小为6.75G,与matrix.csv接近。我使用pandas.read_csv()读取我生成的文件,花了几十秒才成功读取文件。

    我也尝试使用 Dask 来读取文件。

    sc_ge = dask.dataframe.read_csv('matrix.csv', sample=1000000)
    sc_ge = sc_ge.computI()
    

    compute() 函数具有与 pandas.read_csv() 类似的现象

    那么,为什么我无法成功读取 matrix.csv?或者还有其他方法可以获取此 csv 文件的数据框吗?

  • 请问我是 Flutter 的新手。我希望用户能够在一天中的任何时间提款一次,但我希望提款按钮在他们第一次点击或第一次提款后被禁用......

    请问我是 Flutter 新手。我希望用户能够在一天中的任何时间提款一次,但我希望提款按钮在他们第一次点击或第一次提款后被禁用,然后到明天该按钮将处于活动状态。请问我该如何尝试,我尝试使用 sharedpreferences 但无济于事。

    我尝试了下面的代码,但出现了错误“FormatException:无效的日期格式”,我也尝试过更改日期格式,但无济于事。如能提供任何帮助,我将不胜感激。

    
    
    ElevatedButton(
      onPressed: () async {
        SharedPreferences prefs = await SharedPreferences.getInstance();
       // var currentTime =  DateTime.now();
       //  var _formatter = DateFormat('yyyy/MM/dd HH:mm').format(currentTime);
       // var resetTime =  DateTime.parse(prefs.getString("time").toString()); 
       // final resetTime = DateTime.parse(prefs.getString("time") ?? '');
    
        var currentTime =  DateTime.now();
        var resetTime =  DateTime.parse(prefs.getString("time").toString());
        if(resetTime != null && !compareDate(currentTime, resetTime))
                                        prefs.setBool("one_tap", true);
                                      
          if(prefs.getBool("one_tap") == null || prefs.getBool("one_tap")!){
              print("Once in a day");
              title = "Change Date";
              prefs.setBool("one_tap", false);
              prefs.setString("time", currentTime.toString());
             }
    },
    child: Text(title),),
    
    compareDate(DateTime current, DateTime reset) {
        if (reset != null) {
          return current.year == reset.year &&
              current.month == reset.month &&
              current.day == reset.day;
        } else {
          return true;
        }
      }
    
  • 引用 13

    第一步是使用 LAG(如您所建议的)来查找某人何时不再符合资格以及授权范围。然后我们可以应用 比较日期范围

    WITH Previous as
    (  
     SELECT *,
       LAG(MEM_EXP_DATE) OVER(PARTITION BY ID_NUM ORDER BY MEM_EFF_DATE,AUTH_EFF_DATE)  as PrevExprDate,
       LAG(AUTH_EFF_DATE) OVER(PARTITION BY ID_NUM ORDER BY MEM_EFF_DATE,AUTH_EFF_DATE)  as PrevAUTH_EFF_DATE,
       LAG(AUTH_EXP_DATE) OVER(PARTITION BY ID_NUM ORDER BY MEM_EFF_DATE,AUTH_EFF_DATE)  as PrevAUTH_EXP_DATE
     FROM ADMITS
    ),
    Eligible as
    (  
    SELECT *,
        CASE 
         WHEN PrevExprDate IS NULL THEN NULL 
         WHEN PrevExprDate = '12/31/9999' THEN '12/31/9999'
         ELSE DateAdd(day, 1, PrevExprDate) END as StartNotEligible,
        CASE 
         WHEN MEM_EFF_DATE IS NULL THEN NULL 
         WHEN MEM_EFF_DATE = '12/31/9999' THEN '12/31/9999'
         ELSE DateAdd(day, -1, MEM_EFF_DATE) END as EndNotEligible
    FROM Previous
    )
    Select ID_NUM, PrevAUTH_EFF_DATE, PrevAUTH_EXP_DATE, StartNotEligible,EndNotEligible 
    FROM Eligible 
    WHERE (StartNotEligible <= PrevAUTH_EXP_DATE      AND EndNotEligible >= PrevAUTH_EFF_DATE)
    

    小提琴

    中间的:

    ID_NUM 验证有效日期 验证有效日期 内存使用时间 (MEM_EFF_DATE) 内存使用日期 上一个到期日期 开始不符合条件 不符合条件结束
    118206307 2023-01-02 2023-06-07 2022-04-22 2023-09-30 无效的 无效的 2022-04-21
    118206307 2023-08-30 2024-02-17 2022-04-22 2023-09-30 2023-09-30 2023-10-01 2022-04-21
    118206307 2023-01-02 2023-06-07 2023-10-20 9999-12-31 2023-09-30 2023-10-01 2023-10-19
    118206307 2023-08-30 2024-02-17 2023-10-20 9999-12-31 9999-12-31 9999-12-31 2023-10-19

    最终的:

    ID_NUM 上一个AUTH_EFF_DATE 上一个AUTH_EXP_DATE 开始不符合条件 不符合条件结束
    118206307 2023-08-30 2024-02-17 2023-10-01 2023-10-19
  • mikl 2月前 0 只看Ta
    引用 14

    嗨,你为此使用了任何类型的 Firestore 数据库吗?我会将按钮按下时的日期添加到数据库中。然后当应用程序再次打开时检索日期,然后将其与当前数据进行比较。如果日期差为 24 小时,请使按钮处于活动状态。如果不是,请禁用

  • 第一步是分离并删除授权和资格数据。提供的原始发布数据似乎是两者的交叉应用,可能来自较早的查询。

    第二步是 数据中提供的 包含 结束日期加 1 天来 独有 包含 开始日期和 独有 NULLIF() 的组合 ISNULL() 用于保留特殊的 结束时间 9999-12-31 值。

    在下面的代码中,我使用术语 ThruDate 来指代 包含 结束日期(仅用于显示),并 ToDate 指代 排他 结束日期(由逻辑使用)。

    接下来,我们需要确定要测试的所有不同日期范围。这可以通过提取所有不同的开始日期和不包含结束日期、对它们进行排序,然后为每个间隔构建新的日期范围来完成。 LAG() 窗口函数用于获取要与当前数据相结合的先前日期以定义每个范围。

    现在我们可以测试每个日期间隔是否与授权和资格日期范围重叠。重叠日期范围的标准测试是 Start1 < End2 AND Start2 < End1 。如果我们的样本间隔与授权行重叠,但不与资格行重叠,则我们已确定授权但不合格的间隔应包含在结果中。

    所有计算均针对每个 ID 值独立完成。

    最终的逻辑将是这样的:

    -- Date range operations work much better when using "exclusive" end dates,
    -- so we will calculate and use exclusive end dates for all range and overlap
    -- logic, and only use the inclusive end dates for display.
    --
    -- To see the intermediate results:
    --    Change the select to SELECT * and
    --    Uncomment the WHERE clause.
    WITH AuthDates AS (
        SELECT DISTINCT -- Distinct is used here to dedup the original unnormalized data
            ID_NUM AS Id,
            AUTH_EFF_DATE AS AuthFromDate,
            AUTH_EXP_DATE AS AuthThruDate, -- Inclusive
            ISNULL(
                DATEADD(day, 1, NULLIF(AUTH_EXP_DATE, '9999-12-31')),
                '9999-12-31') AS AuthToDate -- Exclusive
        FROM ADMITS
    ),
    EligibilityDates AS ( -- Distinct is used here to dedup the original unnormalized data
        SELECT DISTINCT
            ID_NUM AS Id,
            MEM_EFF_DATE AS EligFromDate,
            MEM_EFF_DATE AS EligThruDate, -- Inclusive
            ISNULL(
                DATEADD(day, 1, NULLIF(MEM_EXP_DATE, '9999-12-31')),
                '9999-12-31') AS EligToDate -- Exclusive
        FROM ADMITS
    ),
    DistinctDates AS (
        SELECT DISTINCT U.Id, U.Date
        FROM (
            SELECT A.Id, V.Date
            FROM AuthDates A
            CROSS APPLY (VALUES (AuthFromDate), (AuthToDate)) V(Date)
            UNION ALL  -- (Yes, I could drop the ALL, but I prefer an explicit DISTINCT)
            SELECT E.Id, V.Date
            FROM EligibilityDates E
            CROSS APPLY (VALUES (EligFromDate), (EligToDate)) V(Date)
        ) U
    ),
    DateRanges AS (
        SELECT
            Id,
            LAG(Date) OVER(PARTITION BY Id ORDER BY Date)  AS FromDate,
            ISNULL(
                DATEADD(day, -1, NULLIF(Date, '9999-12-31')),
                '9999-12-31') AS ThruDate,
            Date AS ToDate
        FROM DistinctDates
    )
    SELECT
        A.Id,
        A.AuthFromDate, A.AuthThruDate,
        D.FromDate AS IneligibleFromDate, D.ThruDate AS IneligibleThruDate
    FROM DateRanges D
    LEFT JOIN AuthDates A
        ON A.Id = D.Id
        AND A.AuthFromDate < D.ToDate
        AND A.AuthToDate > D.FromDate
    LEFT JOIN EligibilityDates E
        ON E.Id = D.Id
        AND E.EligFromDate < D.ToDate
        AND E.EligToDate > D.FromDate
    WHERE A.ID IS NOT NULL  -- Authorized
    AND E.Id IS NULL        -- But not eligible
    ORDER BY
        D.Id,
        D.FromDate
    

    可以通过将第一个条件更改 WHERE LEFT JOIN 并将第二个条件更改 INNER JOIN LEFT JOIN 当前 WHERE NOT EXISTS(...) ,但我将它们保留为外连接,以便可以轻松查看中间结果。)

    中间结果(使用独占结束日期):

    ID 从日期 迄今为止 验证日期 授权日期 资格起始日期 资格截止日期
    118206307 无效的 2022-04-22 无效的 无效的 无效的 无效的
    118206307 2022-04-22 2023-01-02 无效的 无效的 2022-04-22 2023-10-01
    118206307 2023-01-02 2023-06-08 2023-01-02 2023-06-08 2022-04-22 2023-10-01
    118206307 2023-06-08 2023-08-30 无效的 无效的 2022-04-22 2023-10-01
    118206307 2023-08-30 2023-10-01 2023-08-30 2024-02-18 2022-04-22 2023-10-01
    118206307 2023-10-01 2023-10-20 2023-08-30 2024-02-18 无效的 无效的
    118206307 2023-10-20 2024-02-18 2023-08-30 2024-02-18 2023-10-20 9999-12-31
    118206307 2024-02-18 9999-12-31 无效的 无效的 2023-10-20 9999-12-31

    最终结果:

    ID 验证日期 授权日期 不符合资格日期 截止日期不合格
    118206307 2023-08-30 2024-02-17 2023-10-01 2023-10-19

    请参阅 this db<>fiddle 的演示,其中包含涵盖多个重叠授权和资格场景的附加测试数据。

  • 引用 16

    好主意,请问我该如何实现呢?但是看看我的应用程序是如何工作的,当用户点击提款按钮时,它会在验证后将用户输入发送到 paystack,并将 webhook 发送回我的管理面板,同时从用户那里扣款,因此有了这个新想法,我该如何在将用户数据发送或推送到 paystack 进行扣款之前保存数据

  • 有两种方法可以实现此目的:

    1. 当提款完成时,您必须保存该日期时间在您的后端数据库中,并且当用户返回到相同的提款按钮页面时,点击 api 来检查最后一次提款的日期时间,然后您可以匹配您当前的日期时间,如果超过一天,则启用该按钮,反之亦然。
    2. 当提款成功时,在后端保存一个布尔变量,在第一个选项中,我们在前端计算剩余时间,因此现在在后端执行此操作,相同的逻辑将运行,您可以使用该布尔变量启用/禁用按钮
  • Paystack 网关很慢,用户提取的金额总是超过他们的余额,因为我在监听或等待 webhook 之后再向用户扣款,所以有时它会延迟,这会导致一些用户提取的金额超过他们的余额,因为 webhook 没有反弹到后端,所以他们可能会被扣款,这样他们提取的金额就会超过他们预期的金额,所以我不想再监听 webhook 了。

  • 请问您有一个简单的代码,说明如何实现您的第一个想法吗?我想它会起作用,我是 Flutter 的新手

  • 为了使用户在一段时间内无法单击按钮,您可以简单地使用之前编写的 DateTime。当用户单击按钮时,您应该将时间保存在 sharedprefrences 或其他数据库中,并在用户再次单击按钮时检查当前时间和过去的时间,为此,您可以像下面的代码一样获取过去的时间:

    // get the submit button time and then store it in sharedpref
      DateTime submitButtonTime  = DateTime.now();
    
      // get the current time when you want to check the passed time
      DateTime currentTime = DateTime.now().add(Duration(days: 1));
    
      // you can use "difference" method to get the passed time between two 
      //times
      num passedTime = currentTime.difference(submitButtonTime).inHours;
    
      // print the passed time in hours, there are other types like  
      //minutes or milliseconds if you want to get more precise to the passed 
      //time
      print(passedTime);
    
返回
作者最近主题: