{"id":36487,"date":"2026-08-07T07:46:58","date_gmt":"2026-08-07T14:46:58","guid":{"rendered":"https:\/\/www.podfeet.com\/blog\/?p=36487"},"modified":"2026-08-17T06:58:07","modified_gmt":"2026-08-17T13:58:07","slug":"elapsed-time-adder-app-store","status":"publish","type":"post","link":"https:\/\/www.podfeet.com\/blog\/2026\/08\/elapsed-time-adder-app-store\/","title":{"rendered":"Elapsed Time Adder is Live in the App Store!"},"content":{"rendered":"<p>Have you ever needed to add (or subtract) elapsed time? You may not need to do this on the daily, but when you do, you might turn to a spreadsheet to do this task for you. Spreadsheets aren\u2019t designed to calculate elapsed time; they only work with clock time.<\/p>\n<p>And that\u2019s why I developed and released my first official app in the <a href=\"https:\/\/apps.apple.com\/us\/app\/elapsed-time-adder\/id6766396058\">Apple App Store called Elapsed Time Adder<\/a>. It\u2019s free, and runs on the iPhone, iPad, Vision OS, and there\u2019s even a proper Mac app.<\/p>\n<div class=\"group figure-center\">\n<figure style=\"float: left; margin-right: 10px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2026\/08\/01-iPhone-17-Pro-Max-portrait-audio-ex.png\" alt=\"01 iPhone 17 Pro Max portrait audio example showing two added one subtracted line.\"  title=\"01 iPhone 17 Pro Max portrait audio ex.png\" width=\"250 \" height=\"800\"><figcaption style=\"text-align:center\"><\/figcaption><\/figure>\n<figure style=\"float: left; margin-right: 10px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2026\/08\/02-iPhone-17-Pro-Max-copy-csv.png\" alt=\"02 iPhone 17 Pro Max copy csv.\"  title=\"02 iPhone 17 Pro Max copy csv.png\" width=\"250 \" height=\"800\"><figcaption style=\"text-align:center\"><\/figcaption><\/figure>\n<figure style=\"float: left; margin-right: 10px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2026\/08\/03-iPhone-17-Pro-Max-Edit-Rows.png\" alt=\"03 iPhone 17 Pro Max Edit Rows.\"  title=\"03 iPhone 17 Pro Max Edit Rows.png\" width=\"250 \" height=\"800\"><figcaption style=\"text-align:center\"><\/figcaption><\/figure>\n<\/div>\n<h2>Features<\/h2>\n<p>Let\u2019s talk about the cool features. When you first open Elapsed Time Adder, you\u2019ll see at least two rows to enter times (more if you\u2019re on iPad or Mac). You can optionally enter a title for each row, and then enter hours, minutes, and seconds. As you type in the values, you\u2019ll see a real-time update of the total time entered, written in human-readable form, such as 3 hrs 23 min 17 sec.<\/p>\n<p>As soon as you start entering times on the second row, the total updates automatically. Sometimes you need to subtract elapsed time, so every row has a +\/- toggle to change whether that row is added or subtracted.<\/p>\n<p>You\u2019re not restricted to typing in times that are within their normal range \u2014 by that I mean minutes don\u2019t have to be less than 60; you can put in 238 minutes, and the total will read 3 hrs 58 min.  That alone is worth the price of free, isn\u2019t it?<\/p>\n<p>You can also enter decimal values like .33 min, and Elapsed Time Adder will tell you that\u2019s 19.80 seconds.<\/p>\n<figure style=\"float: center; margin: 10px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2026\/08\/06-iPad-13-absurd-times.png\" alt=\"06 iPad 13 absurd times.\"  title=\"06 iPad 13 absurd times.png\" width=\"800 \" height=\"600\"><figcaption style=\"text-align:center\">iPad Example Showing Unusual Times<\/figcaption><\/figure>\n<p>If you want to enter more rows of times, you can tap the Add Row button. Maybe after you\u2019ve entered a bunch of data, you\u2019d like to rearrange the rows. The Edit Rows button will let you drag the rows up and down and delete entire rows.  If you\u2019ve made a dog\u2019s dinner of your data entry, simply hit the Reset button to go back to the default empty rows.<\/p>\n<p>If you\u2019ve entered your data and gotten your answer, you may want to put the data somewhere else. If you select Copy CSV, you can paste a nice comma-separated value version of your data into a spreadsheet app. Maybe you\u2019d like it in HH:MM:SS format? There\u2019s a button to copy and paste that way too.<\/p>\n<pre><code>Title HH:MM:SS\n2.9 mi walk: 01:13:12\nStrength training: 00:14:52\n.51 mile walk: 00:16:01\nTotal: 01:44:05\n<\/code><\/pre>\n<p>If you\u2019re on iPad or Mac, you get a handy-dandy sidebar collapse\/expand button, and it auto-collapses if you narrow the window. You can even open multiple windows in Elapsed Time Adder on iPad and Mac.<\/p>\n<figure style=\"float: center; margin: 10px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2026\/08\/08-Mac-video-music-offset.png\" alt=\"Mac video music offset with an arrow pointing out the collapsible sidebar\"  title=\"08 Mac video music offset.png\" width=\"800 \" height=\"500\"><figcaption style=\"text-align:center\">Look \u2014 A Collapsible Sidebar!<\/figcaption><\/figure>\n<figure style=\"float: center; margin: 10px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2026\/08\/09-2-windows-no-sidebar-grey.png\" alt=\"macOS 2 windows no sidebar grey.\"  title=\"09 2 windows no sidebar grey.png\" width=\"800 \" height=\"500\"><figcaption style=\"text-align:center\">macOS Screenshot Showing Off Multiple Windows<\/figcaption><\/figure>\n<p>If you\u2019re a fan of dark mode on your devices, it\u2019s got that too.<\/p>\n<figure style=\"float: center; margin: 10px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2026\/08\/10-Mac-dark-mode-client.png\" alt=\"10 Mac dark mode client.\"  title=\"10 Mac dark mode client.png\" width=\"800 \" height=\"500\"><figcaption style=\"text-align:center\">Dark Mode Support<\/figcaption><\/figure>\n<p>If you want to learn more about the app, there\u2019s a link to a <a href =\"https:\/\/timeadder.podfeet.com\" target=\"_blank\" rel=\"noopener\">landing page explaining Elapsed Time Adder<\/a>. There&#8217;s a link to email me feedback or questions (but you already know how to do that). If you\u2019re of the nerd persuasion, you can submit an issue on GitHub right from within the app.<\/p>\n<figure style=\"float: center; margin: 10px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2026\/08\/04-iPhone-17-Pro-Max-Get-Help.png\" alt=\"iPhone 17 Pro Max Get Help.\"  title=\"04 iPhone 17 Pro Max Get Help.png\" width=\"368 \" height=\"800\"><figcaption style=\"text-align:center\">iPhone Pro Max Screenshot &#8211; How to Get Help<\/figcaption><\/figure>\n<p>In case you\u2019re wondering, of <em>course<\/em> Elapsed Time Adder is fully accessible. It supports VoiceOver, the design elements do not depend on color only, and it works with Voice Control.<\/p>\n<h2>But Still, Why Not a Spreadsheet?<\/h2>\n<p>Let\u2019s walk through a very simple example of how a spreadsheet fails at arithmetic on <em>elapsed<\/em> time. Let\u2019s say you want to add 23:00:00 hours plus 8:00:00 hours. This is an easy layup \u2014 that should calculate to 31:00:00.  But that\u2019s not what you\u2019ll see in a spreadsheet. Instead, you\u2019ll get 7:00:00! Remember, spreadsheets think this is clock time, not elapsed time. The spreadsheet sees 23 hours as 11 PM, and 8 hours after 11 PM is 7 AM.<\/p>\n<figure style=\"float: center; margin-right: 10px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2026\/08\/adding-23-hrs-plus-8-hrs-in-Excel-and-getting-7-hrs.png\" alt=\"Adding 23 hrs plus 8 hrs in Excel and getting 7 hrs.\"  title=\"adding 23 hrs plus 8 hrs in Excel and getting 7 hrs.png\" width=\"635 \" height=\"482\"><figcaption style=\"text-align:center\">Adding Time in Excel is Clock Time, Not Elapsed<\/figcaption><\/figure>\n<p>Note that for some very simple calculations like the one I gave above, you can change the format in Excel of the sum to a custom format: <code>[h]:mm:ss<\/code>. This format allows hours to be greater than 24, thus calculating properly. But you can&#8217;t enter minutes or seconds over 60, and you can&#8217;t use decimal values. Under the hood, Excel still considers all times to be clock time, which can be very valuable. For example, it can tell you the time difference between 11 AM on one date and 3 PM on another date (if you format it properly). That&#8217;s a valuable function but not the one that Elapsed Time Adder so elegantly solves.<\/p>\n<h2>Random Assortment of Use Cases<\/h2>\n<p>Now that we know the problem to be solved, let&#8217;s talk about some use cases. I&#8217;ve been having trouble with the battery on my Apple Watch. Apple says I work out too much.  Well geez, that&#8217;s why I bought the darn watch \u2014 to track my fitness! Anywho, I wanted to know if there was a correlation between an early demise battery day and a big workout day. I started tracking how much time I spent in multiple workouts a day mapped against how early in the day the battery died.<\/p>\n<p>For example, on July 30, I took a 2.9 mile walk that took me 1:13:12, then I did a 14:52 strength training workout, and finished up the day with a .51 mile stroll with Kepler that took another 16:01. I popped open Elapsed Time Adder, put in the details I just described, and the app calculated the elapsed total time as I entered the data, showing a final total of 1 hr 44 min 5 sec.<\/p>\n<figure style=\"float: center; margin: 10px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2026\/08\/Adding-workout-times-for-Apple-Watch-battery-problem.png\" alt=\"Adding workout times for Apple Watch battery problem.\"  title=\"Adding workout times for Apple Watch battery problem.png\" width=\"799 \" height=\"596\"><figcaption style=\"text-align:center\">Adding Workout Times on Native Mac App<\/figcaption><\/figure>\n<p>Another example of where I&#8217;ve used Elapsed Time Adder is when I&#8217;m editing audio for the podcast. Let&#8217;s say I bump my microphone while recording Chit Chat Across the Pond with Adam Engst. I instantly scribble down the time I did it; let&#8217;s say 32:57 into the 45-minute recording.<\/p>\n<p>Fast forward to when I record and assemble the NosillaCast. Let&#8217;s say I&#8217;ve recorded an intro, read two articles, dropped in an Eddie Tonkoi recording, and then recorded my panhandling for money segment. Next, I drop in the Chit Chat Across the Pond music and finally my conversation with Adam.  I can see that Chit Chat starts at 46:38, but now I have to find 32:57 later than 46:38 for the mic bumping accident. Easy peasy, I just use Elapsed Time Adder to add 46:38 + 32:57 and get 1 hr 19 min and 35 sec. Scroll over to that time, and I&#8217;ll immediately see the giant bump in my waveform.<\/p>\n<h2>History of the App<\/h2>\n<p>For once I haven\u2019t buried the lede in an article, but I do want to give you some history behind this glorious, useful, and free app.<\/p>\n<p>On November 3, 2021, I pushed my first commit to GitHub for a little web app to add and subtract time. Four years later, almost to the day, on November 11, 2025, I was done developing my app, and I published it to a GitHub Pages site.  You can still use it at <a href=\"https:\/\/podfeet.github.io\/time-adder\/\">podfeet.github.io\/&#8230;<\/a>, but it&#8217;s not as fancy as the new, dedicated app.<\/p>\n<p><a href=\"https:\/\/podfeet.github.io\/time-adder\/\"><\/p>\n<figure style=\"float: center; margin: 10px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2026\/08\/Elapsed-Time-Adder-on-GitHub-Pages.png\" alt=\"Elapsed Time Adder on GitHub Pages.\"  title=\"Elapsed Time Adder on GitHub Pages.png\" width=\"799 \" height=\"507\"><figcaption style=\"text-align:center\">The OG Elapsed Time Adder Web App<\/figcaption><\/figure>\n<p><\/a><\/p>\n<p>The existence of Elapsed Time Adder is all because of Bart and the wonderful Programming By Stealth series. The very first thing he taught us was HTML, and that\u2019s how I did the layout of the time entry boxes and buttons. Then he taught us JavaScript, and that\u2019s how the math library gets calculated and delivered to you in the web app. He taught us CSS, which is how the sizes and colors of elements were originally created. The current layout, colors, and elegance in the most recent versions of the web app are thanks to Bart teaching us how to use Bootstrap. Finally, Bart taught us how to wrap our code with a technology called Webpack. And the best thing I\u2019ve learned in Programming By Stealth was how to do version control of everything using Git.<\/p>\n<p>I give myself all of the credit for the math module that does the actual calculations. It\u2019s not complex math, but it\u2019s the core piece of how Elapsed Time Adder works. It takes each row and turns it into raw seconds by multiplying hours by 3600, minutes by 60, and adding those seconds to the seconds field. Then it adds and subtracts the rows of seconds and splits it back out into hours, minutes, and seconds.  It did get a little tricky when rounding negative numbers (I used Math.floor for that one), but other than that it was just arithmetic. The original web app and the fancy pants dedicated apps both use my original math library.<\/p>\n<h2>And Then Along Came Vibe Coding<\/h2>\n<p>By this time in the story, I started calling myself a developer, even though Imposter Syndrome made me feel like a faker.  I dreamt about a day when I&#8217;d make Elapsed Time Adder into a proper App Store app for the iPhone and Mac. That dream would have to wait until Bart learned Swift and then taught it to us.<\/p>\n<p>But along came the LLMs and vibe coding. I started dreaming a new dream where an AI agent would help me do it. I talked about it. I mused about it. And I continued to imagine a world where I would get off my fanny and actually DO it.<\/p>\n<p>Then Mike Price, aka @Grumpy, in the live chat room and in <a href=\"https:\/\/podfeet.com\/slack\">our Slack<\/a> sent me a screenshot of a version of my app that he\u2019d written (using agentic AI).  I was amazed, and also super sad at the same time. My original code is on GitHub under the MIT open source license, so there was nothing wrong with what he did, but I was sad that I didn\u2019t do what he\u2019d done!<\/p>\n<p>Because Mike is a stellar human being, he graciously agreed to step aside when I told him I really wanted to do it myself.<\/p>\n<p>I won\u2019t walk you through the entire process, but with the $20\/month version of Claude Code, I built the proper App Store apps. It wasn\u2019t a weekend effort as some people describe; rather, it took me more than six months.  I directed the layout, especially how it would be different on the Mac vs. iOS, while Claude did all of the coding. I made Claude build tests, and especially important \u2014 accessibility tests. There were a lot of iterations where the tests would fail and we&#8217;d have to go back through and figure out how to fix it, so the tests were quite valuable.<\/p>\n<p>Since these AI agents are using all world knowledge, they make lots of mistakes along the way, and regression often plagued the development process.<\/p>\n<p>Learning how to interact with the App Store itself was a whole adventure of its own. One of the harder things was making good screenshots of the different platforms. I wanted to make them classy like the cool kids. That involved:<\/p>\n<ul>\n<li>Taking the screenshots<\/li>\n<li>Framing them with the <a href=\"https:\/\/apps.apple.com\/us\/app\/frame-screenshots-shareshot\/id6474271573Frame%20Screenshots:%20Shareshot\">ShareShot app for macOS<\/a><\/li>\n<li>Putting them on a fancy background of the exact approved size using <a href=\"https:\/\/www.affinity.studio\">Affinity from Canva<\/a><\/li>\n<li>Adding a catchy six-word or less explanation<\/li>\n<li>Uploading them to App Store Connect<\/li>\n<li>Rinse and repeat for iPhone, iPad, and Mac.<\/li>\n<\/ul>\n<figure style=\"float: center; margin: 10px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2026\/08\/Affinity-showing-iphone-screenshot-with-layered-text-and-annotations.png\" alt=\"Affinity showing iphone screenshot with layered text and annotations.\"  title=\"Affinity showing iphone screenshot with layered text and annotations.png\" width=\"800 \" height=\"708\"><figcaption style=\"text-align:center\">Affinity With Layers for All the Screenshots<\/figcaption><\/figure>\n<p>And then the beta testers came back with changes, and I had to recreate the screenshots all over again to reflect the improved design!<\/p>\n<p>Speaking of beta testers, they were a HUGE help. You may think you can test every edge case of your app because you know it so well, but you would be wrong. In particular, Mike Price was amazing at not only finding bugs (like the disaster that was landscape mode on the iPhone Pro Max), but also at creating bug reports in GitHub so it was much easier to reproduce and fix the problems he found.<\/p>\n<h2><a href =\"https:\/\/podfeet.com\/donate\" target=\"_blank\" rel=\"noopener\">Buy Me a Coffee<\/a><\/h2>\n<p>The bottom line is I\u2019m absolutely thrilled to have my first app in the App Store. I hope you\u2019ll download Elapsed Time Adder and give it a try and see if you find it useful. If you want to drop a five-star review into the App Store, that would be totally awesome. I doubt my little app will get the attention of the masses, but it would make me feel all warm and fuzzy if you did.<\/p>\n<p>I chose not to charge for my app for a multitude of reasons, but if you do like the app and find it useful, consider going to <a href=\"https:\/\/podfeet.com\/donate\">podfeet.com\/donate<\/a> and buying me a coffee.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Have you ever needed to add (or subtract) elapsed time? You may not need to do this on the daily, but when you do, you might turn to a spreadsheet to do this task for you. Spreadsheets aren\u2019t designed to calculate elapsed time; they only work with clock time. And that\u2019s why I developed and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":36504,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[147],"tags":[8392,976,2728,8391,977,8393],"class_list":["post-36487","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog-posts","tag-add-time","tag-app-store","tag-elapsed-time","tag-elapsed-time-adder","tag-mac-app-store","tag-subtract-time"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2026\/08\/iPad-13-showing-10-rows-1040x520-1.png","_links":{"self":[{"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/posts\/36487","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/comments?post=36487"}],"version-history":[{"count":11,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/posts\/36487\/revisions"}],"predecessor-version":[{"id":36527,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/posts\/36487\/revisions\/36527"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/media\/36504"}],"wp:attachment":[{"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/media?parent=36487"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/categories?post=36487"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/tags?post=36487"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}