You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flutter中实现(currentTime.Day+Month+39)*Year计算及结果复制?

单页Flutter应用实现方案

核心功能拆解

  • 获取当前时间:通过DateTime.now()获取系统当前日期,提取年、月、日三个字段
  • 执行公式计算:按照公式 (日 + 月 + 39) × 年 计算最终结果
  • UI展示与交互:显示当前时间、计算结果,提供复制结果的按钮
  • 复制功能实现:将结果复制到系统剪贴板,并给出操作反馈

完整代码示例

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: '日期计算工具',
      theme: ThemeData(primarySwatch: Colors.blue),
      home: const CalculationPage(),
    );
  }
}

class CalculationPage extends StatefulWidget {
  const CalculationPage({super.key});

  @override
  State<CalculationPage> createState() => _CalculationPageState();
}

class _CalculationPageState extends State<CalculationPage> {
  late DateTime _currentTime;
  late int _result;

  @override
  void initState() {
    super.initState();
    _currentTime = DateTime.now();
    _calculateResult();
  }

  // 执行公式计算
  void _calculateResult() {
    _result = (_currentTime.day + _currentTime.month + 39) * _currentTime.year;
  }

  // 复制结果到剪贴板
  Future<void> _copyResult() async {
    await Clipboard.setData(ClipboardData(text: _result.toString()));
    if (!mounted) return;
    ScaffoldMessenger.of(context).showSnackBar(
      const SnackBar(content: Text('结果已复制到剪贴板')),
    );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('日期计算工具')),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.center,
          children: [
            Text(
              '当前时间: ${_currentTime.year}年${_currentTime.month}月${_currentTime.day}日',
              style: const TextStyle(fontSize: 18),
            ),
            const SizedBox(height: 32),
            Text(
              '计算结果: $_result',
              style: const TextStyle(fontSize: 24, fontWeight: FontWeight.bold),
            ),
            const SizedBox(height: 24),
            ElevatedButton(
              onPressed: _copyResult,
              child: const Text('复制结果'),
            ),
          ],
        ),
      ),
    );
  }
}

关键代码说明

  1. 时间获取与计算:在initState中初始化当前时间,并调用_calculateResult完成公式计算,确保页面加载时就得到结果
  2. 复制功能:借助Clipboard类的setData方法将结果文本写入剪贴板,通过SnackBar给用户直观的复制成功提示
  3. UI布局:使用Column垂直排列元素,通过SizedBox控制间距,保证界面简洁清晰

内容的提问来源于stack exchange,提问作者SHAMMAS MUHAMMED

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 07:12:25