Untitled
unknown
plain_text
7 days ago
2.1 kB
2
Indexable
Never
import 'dart:async'; import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Countdown Timer', theme: ThemeData( primarySwatch: Colors.blue, ), home: CountdownTimerScreen(), ); } } class CountdownTimerScreen extends StatefulWidget { @override _CountdownTimerScreenState createState() => _CountdownTimerScreenState(); } class _CountdownTimerScreenState extends State<CountdownTimerScreen> { late Timer _timer; int _remainingSeconds = 0; // Example nextUpdateTime in Unix milliseconds (replace with API data) final int nextUpdateTime = 1696267200000; // Example: 2024-10-02 12:00:00 GMT @override void initState() { super.initState(); _calculateRemainingTime(); _startTimer(); } void _calculateRemainingTime() { // Get current time in Unix milliseconds int currentTime = DateTime.now().millisecondsSinceEpoch; // Calculate remaining time in seconds _remainingSeconds = ((nextUpdateTime - currentTime) / 1000).round(); } void _startTimer() { _timer = Timer.periodic(Duration(seconds: 1), (timer) { if (_remainingSeconds > 0) { setState(() { _remainingSeconds--; }); } else { timer.cancel(); } }); } @override void dispose() { _timer.cancel(); super.dispose(); } String _formatTime(int totalSeconds) { int hours = totalSeconds ~/ 3600; int minutes = (totalSeconds % 3600) ~/ 60; int seconds = totalSeconds % 60; return '${hours.toString().padLeft(2, '0')}:${minutes.toString().padLeft(2, '0')}:${seconds.toString().padLeft(2, '0')}'; } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Countdown Timer'), ), body: Center( child: Text( _formatTime(_remainingSeconds), style: TextStyle(fontSize: 48, fontWeight: FontWeight.bold), ), ), ); } }
Leave a Comment