Changelog / Header / TimeStamp Plugin for Sublime Text? - plugins

I am looking for a simple Sublime Text 2 plugin that will allow me to:
Insert (hopefully automatically, but not necessary) a short template with
% Created: TIMESTAMP
% Modified: TIMESTAMP
and then will replace the first TIMESTAMP once and the second every time the file is saved.

The FileHeader plugin for ST provides this functionality and much more.

The following plugin will get you a timestamp (modified from this question):
import sublime_plugin
from datetime import datetime
class TimeStampCommand(sublime_plugin.TextCommand):
def run(self, edit):
# formatting options at http://docs.python.org/2/library/datetime.html#strftime-strptime-behavior
stamp = datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S UTC") # 2013-07-18 14:54:23 UTC
# to get the local time, change utcnow() to now()
for r in self.view.sel():
if r.empty():
self.view.insert(edit, r.a, stamp)
else:
self.view.replace(edit, r, stamp)
Save it as Packages/User/time_stamp.py and bind it to CtrlAltT by adding
{ "keys": ["ctrl+alt+t"], "command": "time_stamp" }
to your keymap (Preferences->Key Bindings - User).
Making a plugin to automatically update the timestamp is slightly more complex, involving calling an event listener. I'm still debugging it, so check back for more...

Related

Google Sheets - DATE format not working on imported Date in TEXT format

I text based .csv file with a semicolon separated data set which contains date values that look like this
22.07.2020
22.07.2020
17.07.2020
09.07.2020
30.06.2020
When I go to Format>number> I see the Google sheets has automatic set.
In this state I cannot use and formulas with this data.
I go to Format>number> and set this to date but formulas still do not see the actual date value and continue to display an error
Can someone share how I can quickly activate the values of this array so formulas will work against them?
I would be super thankful
Where the date are in column A, starting in cell A1, this formula will convert to DATE as a number, after which you apply formatting to Short Date style.
=ARRAYFORMULA(IF(A1:A="",,DATE(RIGHT(A1:A,4),MID(A1:A,4,2),LEFT(A1:A,2))))
Hopefully(!) the dates stay as text, otherwise Google Sheets would sometimes detect MM/dd/yyyy instead of dd/MM/yyyy, and you won't be able to distinguish between July 9th and September 7th in your example.
Solution #1
If your locale is for instance FR, you can then apply
=arrayformula(if(A1:A="";;value(A1:A)))
solution#2
you can try/adapt
function importCsvFromIdv1() {
var id = 'the id of the csv file';
var csv = DriveApp.getFileById(id).getBlob().getDataAsString();
var csvData = Utilities.parseCsv(csv);
csvData.forEach(function(row){
date = row[0]
row[0] = date.substring(6,10)+'-'+date.substring(3,5)+'-'+date.substring(0,2)
})
var f = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
f.getRange(1, 1, csvData.length, csvData[0].length).setValues(csvData);
}
First thanks to those that suggested a fix. I am not really a programmer and get cold sweats when I see suggesting of running scripts to solve simple problems. Sorry guys.
So the (non programmer) solution with the dates was to do a find/replace (CTRL + H) and replace all the (.)dots with (/)slashes, then to make sure the column is formatted as a date, then Google finally understands it as a date.
With the accounting values as well, I had to do the same find/replace to remove all the ' between thousands, then google woke up and understood them as numbers.
I am significantly underwhelmed by this from Google. They are getting too fat and lazy. They need some competition.

Changing the default date format in classic asp when using the "date" function

I'm migrating a whole bunch of web pages that were written in classic asp over to a new server, and have discovered many references to the simple date() function, like:
if cint(left(date,instr(date,"/")-1)) < 9 then blah blah
I'm getting errors because the new server's default date format is returning yyyy-mm-dd, and the code above is expecting it to be in dd/mm/yyyy format.
Rather than manually fixing every occurrence, of which there could be hundreds, I'm looking to see if I can change the default date format for asp so that date() returns dd/mm/yyyy. I thought by simply changing the system's short date format would do the trick, but even after restarting the server it's still showing yyyy-mm-dd.
Is there a setting somewhere where you can specify the default date format when using the date() function?
This worked for me:
change global.asa, in the Sub Session_OnStart, add a line
Session.LCID=1033

Can Pandas (or Python) recognize today's date?

I was wondering if Pandas can somehow figure out what today's date is allowing me to automate the naming of the html file I create when I use the "df.to_html" method.
Basically I"m trying to read a website using method "pd.read_html", and then save the dataframe as an html file, daily. The name of the html file will be the day's date. (So today is 9/28/2016 and tomorrow will be 10/01/16 and so on ) I'm not particular about the format of the date, so Sept or 09, whichever is okay.
I'm trying to automate this as much as possible, and so far the best I've gotten is, using ".format" which allows me some flexiblity. But I don't know how I can further automate the process.
import pandas as pd
df = pd.read_html('random site')
today_date = 'saved data/{}.html'.format('Sept 28') # I'm saving it in the folder "saved data" with the name as today's date.html.
df.to_html(today_date)
Thanks.
See the datetime module.
specifically: datetime.date.today().isoformat() gives you a string with the current date in ISO 8601 format (‘YYYY-MM-DD’)

Org mode icalendar export: how to avoid timestamp in description or summary

I have an agenda that I want to export as an icalendar file.
I do not use properties and org-mode export determines summary and description automatically from the headers and bodys.
The entries were like this one
* <2015-05-19 Tue 13:45-15:15> My entry
Sometimes, this worked properly. I got an entry with summary "My entry" at the time specified by the timestamp. Now, the entry is correctly put at the time, but the timestamp is included into the summary and therefore I can see it in my calendar application.
I have tried, permuting the order of timestamp and header, but the best i have got is by putting the timestamp in the body, as in the following entry
* My entry
<2015-05-19 Tue 13:45-15:15>
Now, the tismestamp is no longer in the summary, but in the description of the event.
I have tried going through the org-mode options but I have not find any possible explanation of this changing.
Can anybody help me in using timestamp to correctly put the event, but avoiding to include it into the exported event?
I'm having the same problem. I found that you can add properties to each item to specify what should be in the summary, like so:
* <2015-05-19 Tue 13:45-15:15> My entry
:PROPERTIES:
:SUMMARY: My entry
:END:
(You can also add LOCATION and DESCRIPTION properties)
But that's pretty annoying.

Set date in single line edit on opening

I'm using PowerBuilder 10.5 and I have two single line edit (SLE) fields - sle_date1 and sle_date2 on my window.
What I need is for those two fields to be filled once I open my program. sle_date2 has to have the value of today (for example - 09.07.13), and sle_date1 has to have the value of (sle_date2-30 days) (example 09.06.13).
So, as I said, once I open my programs both fields would be filled immediately with values of today's date and the date of a month before.
How could I do that? Any advice just to get me going?
You can add some code to populate the edits in the open() event of your window
with a given date that can be today(), you can compute a new date plus / minus a number of days with RelativeDate()
The following code just answers your question (though it could be better to use some editmask controls instead of singlelineedit as it would ease the handle of user's input):
date ld_now, ld_previousmonth
string ls_datefmt
ls_datefmt = "dd.mm.yy"
ld_now = today()
sle_1.text = string(ld_now, ls_datefmt)
ld_previousmonth= RelativeDate(ld_now, -30)
sle_2.text = string(ld_previousmonth, ls_datefmt)
It shows 09.07.13 and 09.06.13 at this time.
first of all you need to open your window. You can to this with put this code in your application open event (let suppose that your window is w_main):
open(w_main)
After that in put this code in your window's open event:
sle_date1.text = string(today())
sle_date2.text = string(RelativeDate(Today(), -30))
I think this solves your problem. Here is a little help for RelativeDate:
http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.pocketbuilder_2.0.pkpsref/html/pkpsref/pkpsref662.htm
Best Regards
Gábor